位置: 编程技术 - 正文
推荐整理分享Unity中实现全局管理类的几种方式(unity全屏),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity设置全局变量,unity all,unity怎么全屏运行,unity设置全局变量,unity设置全局变量,unity全选,unity quad,unity全屏,内容如对您有帮助,希望把文章链接给更多的朋友!
如何在Unity中实现全局管理类?由于Unity脚本的运行机制和面向组件编程(COP)的思想,实现起来和普通的方式略有差别。
第一种方式是使用静态类。适合存储一些全局的变量,如游戏当前关卡、玩家得分等。实现方式和普通的C#静态类没有差别。注意使用静态类就没有必要继承MonoBehaviour了。
如果要实现复杂一些的全局控制,如切换游戏关卡等操作,更常用的方式是使用单例类。单例类的实现又分为两种:
继承自MonoBehaviour的单例类纯C#的单例类前者的优点是:
可以在Inspector中显示,便于赋和查看变量等;可以利用MonoBehaviour的接口;可以使用Coroutine。等等。缺点也很多,主流的观点是能不继承MonoBehaviour就不要继承。
纯C#的单例类实现起来简洁,易于理解。
普通的写法,不考虑多线程线程安全的写法检查两次。C#中使用lock关键字。
基于MonoBehaviour的单例类普通的写法利用了Unity的运行机制,从Awake处获取Unity创建的对象作为单例。注意在Unity中不要使用new来创建MonoBehaviour实例。
持久化的写法在多个场景中保存单例。又有两种方法。
第一种是使用DontDestroyOnLoad方法,告诉Unity不要销毁实例所在的对象,然后将脚本挂到某个GameObject上:
上面这个方法有个弊端,必须要从挂载了这个单例的GameObject所在的场景启动,否则会找不到GameObject对象。但是开发和测试时我们经常会单独启动一个场景。
另一种方法会创建一个GameObject,然后将单例挂载到其上:
Unity3D(二)用反射、泛型读取XML后动态创建实例并赋值 前言:最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容。那么从哪入手呢?因为用的是unity3d
Unity的Profiler性能分析 1.CPUUsageA.WaitForTargetFPS:Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间B.Overhead:Profiler总体时间-所有单项的记录时间总和。用于记录尚不明确的时间
unity学习之小游戏 欢迎来到我们的狗刨网,我们今天主要来复习一下我们学过的知识点。因为电脑原因,装了两天的系统,小游戏比其他同学做的慢了很多,今天下午5点
标签: unity全屏
本文链接地址:https://www.jiuchutong.com/biancheng/377344.html 转载请保留说明!下一篇:Unity3D(二)用反射、泛型读取XML后动态创建实例并赋值(unity反射效果)
友情链接: 武汉网站建设