[Unity] Unity项目架构设计与开发管理 - 视频观看记录
2016-04-09 22:59
711 查看
【1. 各种Manager的应用:EventManager,AudioManager,GUIManager,PoolManager,LevelManager,GameManager,SaveManager,MenuManager,
其中,PoolManager类似于Android中的图片缓存,LevelManager是关卡切换常用的方法,作者推荐AssetStore上有个MadLevelManager。Save Manager是做Quit/Resume操作的,AssetStore上有个名叫SaveManager的项目,是二进制的方式进行数据序列化,据说效率非常好,比JSON或者XML的序列化要快很多。2.
PoolManager的细化,下面设置分类,PoolNPCManager,PoolPlayerManager,下面在设置PoolPerfabManager1,PoolPerfabManager2。
释放空间的时候,尽量缓释释放,一次性大量释放空间,GC压力很大,延迟高。每次Updage释放一定的数据。
下面图片中,PoolManager复用GameObject,所以这些GameObject最好把一些初始化工作放到一个方法中,比如Reset,Start中调用Reset,GameObject复用的时候也调用一次Reset。当然还可以通过bNeedRest来表明是否处于回收状态,下次使用的时候,是否需要Rest。这个纯YY。
2. STRANGEIOC,一个把UI和逻辑分开的框架,看上去就是android中的EventBus。
3. FindObject,FindComponent,这样的操作比较耗时,可以做Cache。
4. 尽量不要开辟动态内存,最好一上来就开辟好,比如需要10-20个,那么一上来就开20个数组,这样可以减少GC。
视频链接:http://v.qq.com/boke/page/d/0/u/d016340mkcu.html
下面贴几个视频中PPT 的截图
其中,PoolManager类似于Android中的图片缓存,LevelManager是关卡切换常用的方法,作者推荐AssetStore上有个MadLevelManager。Save Manager是做Quit/Resume操作的,AssetStore上有个名叫SaveManager的项目,是二进制的方式进行数据序列化,据说效率非常好,比JSON或者XML的序列化要快很多。2.
PoolManager的细化,下面设置分类,PoolNPCManager,PoolPlayerManager,下面在设置PoolPerfabManager1,PoolPerfabManager2。
释放空间的时候,尽量缓释释放,一次性大量释放空间,GC压力很大,延迟高。每次Updage释放一定的数据。
下面图片中,PoolManager复用GameObject,所以这些GameObject最好把一些初始化工作放到一个方法中,比如Reset,Start中调用Reset,GameObject复用的时候也调用一次Reset。当然还可以通过bNeedRest来表明是否处于回收状态,下次使用的时候,是否需要Rest。这个纯YY。
2. STRANGEIOC,一个把UI和逻辑分开的框架,看上去就是android中的EventBus。
3. FindObject,FindComponent,这样的操作比较耗时,可以做Cache。
4. 尽量不要开辟动态内存,最好一上来就开辟好,比如需要10-20个,那么一上来就开20个数组,这样可以减少GC。
视频链接:http://v.qq.com/boke/page/d/0/u/d016340mkcu.html
下面贴几个视频中PPT 的截图
相关文章推荐
- 笨木头的Unity3d常用操作介绍
- 笨木头的Unity3d地形介绍
- unity3d Billboard(物体始终面相摄像机)
- Unity3D中使用Leap Motion进行手势控制
- unity再战PBR材质流程与材质制作实践
- 非常详细的测试unity与android之间的通讯操作
- Unity 使用git 怎么设置
- Unity: “NullReferenceException: Object reference not set to an instance of an object”的可能解決方法
- [Unity游戏开发]向量在游戏开发中的应用(三)
- Unity组件的基类单例模式
- Unity3D 学习笔记6 ——协程
- Unity协程(Coroutine)原理深入剖析
- Unity3d发布WebGL 部署在IIS
- Unity frameIndex = (int)(timer / (1f / framePerSecond));
- unity源码解析Material
- Disunity_V0.5.0 提取Unity生成的APK资源的后续探索
- [Unity3D]Unity3D游戏开发之使用EasyTouch虚拟摇杆控制人物移动
- Unity删除工程记录
- Unity3D中继承在ios上的UIApplicationDelegate
- [Unity] 协同程序可以在Update或者FixedUpdate中调用。