首页 > 代码库 > 2014 Unity3d大会的部分总结

2014 Unity3d大会的部分总结

一、项目开发。管理和公布策略

1.       四大准则

a.       美术的资源量

b.       美术规范,要依据开发什么样的游戏制定统一的规范,这样尽可能的形成统一的规范。然后程序要协助美术制定对应的查看美术是否适合规范的的工具。并把全部美术资源统计出来(这里须要UI的二次开发)。

c.       先从CPU和内存的优化。然后GPU

d.       增量更新。包的大小控制,低端设备的支持

 

     控制drawcall的数量。UI贴图。技能特效,换装等。

     Sorting  Opaque from front to back

     Mipmaps:打开,启用

     硬件分级:

        {resolution post-processing, MSAA, Fx/partides density on/off, Shader }

     内存管理,一半原则,不要超过内存的一半

     {

A.      降低贴图的大小

B.      场景物体都做成prefab

C.      用好Assetbundle

D.      ObjectPool  LoadManager,避免频繁new。在切换场景的时候不释放公共UI

E.       LoadManager,同一时间一次加载

}

AssetBunddle,採用依赖性打包

alpha test的效率低

     自己写一套控制打包的脚本

二、自己主动打包

AssetPostprocessor

AssetImport

BuildPlayer

支持命令行编译,自己主动化打包公布

Assetbundle的东西放入到StreamAssets目录中

 

NewBehaviourScript.txt新建脚本的模板

Asset label: 提升检索的速度

 

打包Androidjar文件命令:jar -cvf class.jar *

 

Edit里面有个Gncphics Emulation选项,临时不清楚干什么的。用来模拟不同硬件的測试

 

增量更新:就是打包的时候要实现。增量更新的方式

1)    脚本资源分离

2)    接口与实现分离

UnityNative code

1.       C, C++ 代码

2.       生成.so文件

3.       放到plugin

4.       在Unity中调用

Java中调用navtive code  Systemn.Loadlibrary

 

一次打包10个包

 

BeginSamplePrifilor 取样CPU的的信息

 

 

三、内存

尽可能避免不必要的堆内存的分配

a.       CPU – GC Alloc

查看性能分析器里:记录游戏执行时内存分配,尽可能避免不必要的堆内存分配

1.       一次性分配超过2kb的选项

2.       检測每帧都具有20B以上的内存的分配的原则

b.       CPU- Time

帧超过5ms

c.       内存

ManagedHeap.UsedSize不超过20M

d.       内存

查看是否有反复的资源,纹理压缩,不要超过1M Assetbundle打包的时候的依赖关系。

 

Device.Present :一般出现了复杂的Shader

Shader.CreateGPUPrgream

Other.compareTag() 不要用等号== 。影响速度

 

 

须要了解的内容:

1.       项目的管理

怎样协调美术和策划把资源的利用最大化

2.       内存的优化

3.       CPU的优化

4.       GPU的优化

5.       性能监视器的使用

6.       经常使用性能比較好的插件

7.       特殊友好效果的实现

8.       Assetbundle的使用

9.       对Unity3d里面的特性进行熟悉

 

目标就是高效率的项目管理流程,一切都以速度和效率为先。

高性能的游戏设计技巧

Reference:

                http://blog.csdn.net/sgnyyy/article/details/23775219

2014 Unity3d大会的部分总结