Unity
文章平均质量分 55
lishengxu159
这个作者很懒,什么都没留下…
展开
-
探究Unity代码的执行顺序(1)
今天在写代码的时候,动态加载了一个游戏物体(游戏物体上挂载了一个脚本),突然想到一个问题,即代码的执行顺序。动态加载游戏物体的那段代码并没有继承自MonoBehaviour。为了简单起见,动态加载游戏物体的那段代码叫做A代码。挂载在游戏物体上的那个脚本叫做B脚本。那么A代码之后的那些代码和B脚本中的代码执行的顺序是怎么样呢?这是在A代码之后的代码一个简单的循环。这是测试结果:根据结果我们可以知道,...原创 2018-05-03 22:49:09 · 680 阅读 · 0 评论 -
学习Unity内存优化笔记
主要说说Mono托管内存的优化,其实主要是对GC的优化。1.内存的分配和回收机制首先C#数据类型有值类型(int、struct等)和引用类型。其中值类型分配在堆栈上(不涉及GC),引用类型分配在堆区(涉及GC)。堆栈上的分配和回收都是简单而且快捷的。当数据存储的时候,只需要简单的在堆栈后扩展,数据失效的时候,只需要移除即可。至于在堆区的存储和回收则是复杂而且缓慢的。当需要在堆区存储一个对象的时候:...原创 2018-05-10 19:02:27 · 317 阅读 · 0 评论 -
对Unity中的多线程的一些理解
大多数游戏引擎都是单线程的,Unity也不例外。为什么使用单线程,原因主要为:游戏中画面更新和逻辑更新的时间点必须有确定性,必须严格按照帧序列进行同步。当然,多线程也能实现,但是同步问题比较麻烦,会加大编程难度。Unity中有大量的异步机制,比如:异步加载资源,异步加载场景。SceneManager.LoadSceneAsync("xxx"); 这段代码就是异步加载场景。(异步加载场景一般是在一...原创 2018-04-26 19:55:36 · 3284 阅读 · 0 评论 -
学习Mono与Unity3D关系的笔记
首先来说说Mono,Mono是Xamarin公司开发的跨平台 .NET运行环境,是.NET框架的另一种实现。区别在于,它可以跨平台。(Unity的跨平台特性依赖于Mono)再来看看Mono的组成。1.C#编译器。最新的Momo版本(5.0+)c#编译器完全兼容c#4.0以上,我使用的是Unity3D,2017.3.1f1版本,它使用的是Mono2.0+版本,它的编译器(mcs)就不支持c#4.0以...原创 2018-05-05 18:00:17 · 4188 阅读 · 0 评论