Unity3d大会的部分总结
2014-04-15 17:40
309 查看
一、项目开发,管理和发布策略
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: 提升检索的速度
打包Android的jar文件命令: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里面的特性进行熟悉
目标就是高效率的项目管理流程,一切都以速度和效率为先。
高性能的游戏设计技巧
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: 提升检索的速度
打包Android的jar文件命令: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里面的特性进行熟悉
目标就是高效率的项目管理流程,一切都以速度和效率为先。
高性能的游戏设计技巧
相关文章推荐
- Unity3d大会的部分总结
- 2014 Unity3d大会的部分总结
- 2014 Unity3d大会的部分总结
- Unity3d大会的部分总结
- 2014 Unity3d大会的部分总结
- [unity3d]unity与3dmax美工部分总结
- Unity3d和3dMax美工部分总结
- [unity3d]unity与3dmax美工部分总结
- RxJava1学习过程部分总结
- Hive部分操作总结
- Unity3D 大型游戏 最后一站 源码 部分重点WindowManager(1)
- ZT-XSS 漏洞使用语句部分总结
- 宁波金鸟服饰有限公司举行公司化运作第二阶段总结表彰大会
- Unity3D 大型游戏 最后一站 源码 部分重点 整体框架(3)
- 关于ConstraintLayout的部分属性总结(强化版RelativeLayout,包含LinearLayout的比例属性,减少层级利器)
- 2011年Esri用户大会技术亮点总结之六(终结篇):ArcGIS desktop
- css部分总结
- HTML部分基础总结(2)
- afinal 的部分使用总结
- Unity3d导出andriod版和ios版遇到的问题总结。