热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Unity中静态方法扩展的实用技巧与优化策略

本文探讨了在Unity中使用静态方法扩展的实用技巧和优化策略。首先介绍了静态方法在Unity中的作用,然后详细阐述了常见的实现方式,包括通用写法和静态脚本的应用。通过这些方法,开发者可以提高代码的可读性和维护性,同时优化性能。文中还提供了具体的示例和最佳实践,帮助读者更好地理解和应用这些技术。

在这里插入图片描述


文章目录

  • 🟥 Unity中静态方法的作用:
  • 🟧 第一种通用写法:
    • 🚩 静态脚本:
    • 🚩 如何使用静态脚本:
  • 🟨 第二种拓展写法:
    • 🚩 为什么要用?
    • 🚩 怎么用?
    • 🚩目标脚本:
    • 🚩如何使用目标脚本:




🟥 Unity中静态方法的作用:

让你不必再GetComponent<目标脚本>().方法&#xff0c;而是直接 目标脚本.方法&#xff0c;便可直接使用目标脚本的内部方法。

使得写法更加地方便。




&#x1f7e7; 第一种通用写法&#xff1a;

如何使用&#xff1f;

静态脚本放在Assets里&#xff0c;不用挂在场景中。

使用脚本 Test_02 挂在场景中。


&#x1f6a9; 静态脚本&#xff1a;

using UnityEngine;public class Test_01
{public static int[] a&#61;new int[6];public static void Skode_Debug(){Debug.Log("hello");}
}




&#x1f6a9; 如何使用静态脚本&#xff1a;

using UnityEngine;public class Test_02 : MonoBehaviour
{private void Start(){Debug.Log(Test_01.a.Length);Test_01.Skode_Debug();}
}




&#x1f7e8; 第二种拓展写法&#xff1a;


&#x1f6a9; 为什么要用&#xff1f;


  • 用了这个SingletonBase写法&#xff0c;就可以让静态脚本中&#xff0c;所有静态方法都不用写static。
  • 为了项目中脚本更有逻辑&#xff0c;我们特别将静态方法都摘成各个功能的脚本&#xff0c;这些脚本用这种写法&#xff0c;便可少写代码&#xff0c;且条理。
    什么脚本能用&#xff1f; 用来存放&#xff0c;不涉及MonoBehaviour生命周期方法的&#xff0c;只存放静态方法的脚本。

因为继承了SingletonBase&#xff0c;目标脚本便不可继承MonoBehaviour。

目标脚本便不可挂在场景中&#xff0c;不可使用MonoBehaviour生命周期&#xff08;小声BB&#xff09;





&#x1f6a9; 怎么用&#xff1f;

1.SingletonBase、静态脚本放在Asset即可&#xff0c;不必挂在场景
2.使用脚本&#xff0c;挂在场景即可。

SingletonBase脚本

public class SingletonBase<T> where T : new()
{public static T Single { get; protected set; } &#61; new T();
}




&#x1f6a9;目标脚本&#xff1a;

using UnityEngine;public class Test_01 : SingletonBase<Test_01>
{public void Skode_Debug(){Debug.Log("hello");}
}




&#x1f6a9;如何使用目标脚本&#xff1a;

using UnityEngine;public class Test_02 : MonoBehaviour
{private void Start(){Debug.Log(Test_01.Single.a.Length);Test_01.Single.Skode_Debug();}
}





大家还有什么问题&#xff0c;欢迎在下方留言&#xff01;


在这里插入图片描述
如果你有 技术的问题 项目开发

都可以加下方联系方式

和我聊一聊你的故事&#x1f9e1;


推荐阅读
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 在多线程编程环境中,线程之间共享全局变量可能导致数据竞争和不一致性。为了解决这一问题,Linux提供了线程局部存储(TLS),使每个线程可以拥有独立的变量副本,确保线程间的数据隔离与安全。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 本文探讨了在Java中实现系统托盘最小化的两种方法:使用SWT库和JDK6自带的功能。通过这两种方式,开发者可以创建跨平台的应用程序,使窗口能够最小化到系统托盘,并提供丰富的交互功能。 ... [详细]
  • 本文介绍了几种不同的编程方法来计算从1到n的自然数之和,包括循环、递归、面向对象以及模板元编程等技术。每种方法都有其特点和适用场景。 ... [详细]
  • 本文探讨了在Java多线程环境下,如何确保具有相同key值的线程能够互斥执行并按顺序输出结果。通过优化代码结构和使用线程安全的数据结构,我们解决了线程同步问题,并实现了预期的并发行为。 ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • 本文提供了使用Java实现Bellman-Ford算法解决POJ 3259问题的代码示例,详细解释了如何通过该算法检测负权环来判断时间旅行的可能性。 ... [详细]
  • 本文探讨了《魔兽世界》中红蓝两方阵营在备战阶段的策略与实现方法,通过代码展示了双方如何根据资源和兵种特性进行战士生产。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
author-avatar
做普通的自我
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有