原地址: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里面的特性进行熟悉

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

高性能的游戏设计技巧

Unity3d大会的部分总结的更多相关文章

  1. 2014 Unity3d大会的部分总结

    一.项目开发.管理和公布策略 1.       四大准则 a.       美术的资源量 b.       美术规范,要依据开发什么样的游戏制定统一的规范,这样尽可能的形成统一的规范.然后程序要协助美 ...

  2. Unity3D性能优化--- 收集整理的一堆

    http://www.cnblogs.com/willbin/p/3389837.html 官方优化文档--优化图像性能http://docs.unity3d.com/Documentation/Ma ...

  3. unity3d优化总结篇

    转自http://www.unitymanual.com/thread-21597-1-1.html 此总结由自己经验及网上收集整理优化内容 包括:1.代码方面:2.函数使用方面:3.ngui注意方面 ...

  4. Unity3D资源存放笔记

    文件夹及路径 昨天记了一篇AssetBundle学习笔记,那么游戏中的各种资源应该如何存放呢? 在网上一阵搜罗,把笔记记一下. 非特殊名称文件夹 非Unity3D指定名称的文件夹中的资源,如果游戏场景 ...

  5. [Unity3D]Unity3D游戏开发Lua随着游戏的债券(于)

    ---------------------------------------------------------------------------------------------------- ...

  6. Unity3D 4.x编辑器操作技巧

    unity wiki(en chs)   unity官网 unity manual(chs  官方最新) 各个版本unity编辑器下载地址: https://unity3d.com/cn/get-un ...

  7. unity3d优化总结篇(二)

    1. 尽量避免每帧处理,可以每隔几帧处理一次 比如: [C#] 纯文本查看 复制代码     function Update() { DoSomeThing(); } 可改为每5帧处理一次: [C#] ...

  8. Unity3D学习笔记(一):Unity3D简介

    Unity3D简介一.什么是Unity.U3D?全面整合的专业引擎 二.这个软件能做什么?1.内容:3D2D游戏,教育,建筑,网页,VRAR,家庭娱乐系统2.媒体:PC平台,主机,移动,VR 1.UE ...

  9. 杂项:Unity3D

    ylbtech-杂项:Unity3D Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具 ...

随机推荐

  1. 【Android学习】调用系统相机

    Android调用系统相机分三步走: 首先是要设置调用相机的权限. 其次是给按钮加打开相机的事件. 最后是拍照后进行图片的保存. 第一步,添加权限: <!-- 调用系统相机 --> < ...

  2. 实现网页页面跳转的几种方法(meta标签、js实现、php实现)

    1.meta标签实现 只需在head里加上下面这一句就行了,在当前页面停留0.1秒后跳转到目标页面  代码如下 复制代码 1 <meta http-equiv="refresh&quo ...

  3. Swift字典类

    在Foundation框架中提供一种字典集合,它是由“键-值”对构成的集合.键集合不能重复,值集合没有特殊要求.键和值集合中的元素可以是任何对象,但是不能是nil.Foundation框架字典类也分为 ...

  4. [转]主键冲突的话就更新否则插入 (ON DUPLICATE KEY UPDATE )

    mysql "ON DUPLICATE KEY UPDATE" 语法如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQ ...

  5. 登堂入室——java流

    ——文章出自PeterYe,不得私自转载 我所知道的 java.io里面的[流],就仿佛太平洋里面的水一样,浩浩荡荡,横无际涯... -----2016/7/16--------公寓处记录------ ...

  6. IAR:Error [Li005]:no definition for"***" 问题之连接

    对于 IAR 出现的 Error[Li005] 链接错误,网上已经给出了比较详尽的解决方法,而对于这次记录,主要是记录解决问题的思路. 网上给出的方法:http://blog.csdn.net/yue ...

  7. 重写session

    <?php ini_set('session.use_only_cookies', 0); $session_id = rand(10000, 99999); session_set_cooki ...

  8. HTML5 + SOCKET视频传输

    <html> <head> <meta http-equiv="content-type" content="text/html; char ...

  9. tomcat源码解读(1)–tomcat热部署实现原理

    tomcat的热部署实现原理:tomcat启动的时候会有启动一个线程每隔一段时间会去判断应用中加载的类是否发生变法(类总数的变化,类的修改),如果发生了变化就会把应用的启动的线程停止掉,清除引用,并且 ...

  10. jdbc学习(一)——SqlServer、Oracle和MySQL

    一.jdbc介绍 jdbc全称:java数据库连接(Java Database Connectivity),是sun公司定义的一套访问数据库的规范(接口和类,由各种数据库公司进行实现),主要放在jav ...