自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 学习Unity内存优化笔记

主要说说Mono托管内存的优化,其实主要是对GC的优化。1.内存的分配和回收机制首先C#数据类型有值类型(int、struct等)和引用类型。其中值类型分配在堆栈上(不涉及GC),引用类型分配在堆区(涉及GC)。堆栈上的分配和回收都是简单而且快捷的。当数据存储的时候,只需要简单的在堆栈后扩展,数据失效的时候,只需要移除即可。至于在堆区的存储和回收则是复杂而且缓慢的。当需要在堆区存储一个对象的时候:...

2018-05-10 19:02:27 331

原创 学习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 4233

原创 探究Unity代码的执行顺序(1)

今天在写代码的时候,动态加载了一个游戏物体(游戏物体上挂载了一个脚本),突然想到一个问题,即代码的执行顺序。动态加载游戏物体的那段代码并没有继承自MonoBehaviour。为了简单起见,动态加载游戏物体的那段代码叫做A代码。挂载在游戏物体上的那个脚本叫做B脚本。那么A代码之后的那些代码和B脚本中的代码执行的顺序是怎么样呢?这是在A代码之后的代码一个简单的循环。这是测试结果:根据结果我们可以知道,...

2018-05-03 22:49:09 700

原创 对Socket通信中BeginReceive方法的一些理解

在学习Unity的网络通信的时候,客户端和服务器端使用Socket通信。其中用到了不少Socket的方法。先看看Receive方法,Receive方法的主要参数是传入一个接受数据的byte数组。查看文档可以得知:如果没有可读取的数据,则Receive方法将一直处于阻止状态,直到数据可用,除非使用 Socket::ReceiveTimeout 设置了超时值。 如果超过超时值,Receive 调用将...

2018-04-26 21:32:00 21373 6

原创 对Unity中的多线程的一些理解

大多数游戏引擎都是单线程的,Unity也不例外。为什么使用单线程,原因主要为:游戏中画面更新和逻辑更新的时间点必须有确定性,必须严格按照帧序列进行同步。当然,多线程也能实现,但是同步问题比较麻烦,会加大编程难度。Unity中有大量的异步机制,比如:异步加载资源,异步加载场景。SceneManager.LoadSceneAsync("xxx");  这段代码就是异步加载场景。(异步加载场景一般是在一...

2018-04-26 19:55:36 3318

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除