原地址:http://blog.csdn.net/sgnyyy/article/details/23775219

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

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. 【http】四种常见的 POST 提交数据方式
  2. php self与static的区别
  3. 项目启动异常java.lang.OutOfMemoryError: PermGen space
  4. SG函数题目
  5. 设计模式之Birdge(桥接)模式
  6. 三:分布式事务一致性协议2pc和3pc
  7. 从List[Future[T]]到Future[List[T]]
  8. 如何实现.so共享库文件
  9. Razor 语法
  10. js下拉菜单默认值为当前年份,下拉菜单的选项为当前年份往前推5年
  11. codeforces 609F. Frogs and mosquitoes 二分+线段树
  12. win10快捷键大全
  13. IPFS:世界正在悄然发生变化
  14. bzoj3675[Apio2014]序列分割 斜率优化dp
  15. Why Helm? - 每天5分钟玩转 Docker 容器技术(160)
  16. php 爬虫框架
  17. MySQL的常见存储引擎介绍与参数设置调优(转载)
  18. IDEA 简单的正则匹配
  19. 1. Spring 简介以及关于 Eclipse 的 Spring Tool Suite 插件安装
  20. 修复恢复"可疑"的SQLServer数据库

热门文章

  1. boost库区间range基本原理及使用实例
  2. 两种查看eclipse或MyEclipse是64bit还是32bit的方法
  3. javascript的排序算法
  4. js知识简单归纳
  5. [SWF]在线预览文档下载
  6. easyui知识累计.递增.
  7. String的几种初始化方法的区别
  8. blazeDS集成spring的remote访问
  9. windbg远程调试
  10. C++多线程技术windows常用方法