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: 提升检索的速度
打包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里面的特性进行熟悉
目标就是高效率的项目管理流程,一切都以速度和效率为先。
高性能的游戏设计技巧
Reference:
2014 Unity3d大会的部分总结的更多相关文章
- 微软 Build 2014开发者大会干货整理-1
微软 Build 2014开发者大会第二天的主题演讲主要包含两部分:Microsoft Azure的发展状况,以及 .NET和生态系统的发展介绍.第二天的重点整理也由此分为上下两部分.您可以在Chan ...
- //Build/ 2014 开发者大会Azure重点整理
寓教于乐,轻松掌握 Windows Apps和 Cloud //Build/ 2014开发者大会第二天重点整理 (上) //Build/ 2014开发者大会第二天的主题演讲主要包含两部分:Mic ...
- Unity3d大会的部分总结
原地址:http://blog.csdn.net/sgnyyy/article/details/23775219 一.项目开发,管理和发布策略 1. 四大准则 a. 美术的资源 ...
- CMMI Institute Conference 2014中国大会
我在大会上做SPD(Strategic Policy Deployment战略部署策略)的演讲,和来自各个公司的高管进行了热烈的讨论.获得好评. 有兴趣的朋友能够点击下面链接:Stratehttp:/ ...
- Docker:Ubuntu下的安装
Docker是什么 Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托 管在 GitHub 上, 基于Go语言并遵从Apache2. ...
- 大熊君大话NodeJS之------FS文件模块
一,开篇分析 文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集.可以通过调用 require("fs") 来获取该模块.文件系统模块中的所有方法均有异步和同步 ...
- 深入浅出Docker(一):Docker核心技术预览
Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源.Docker提供了一种在安全.可 ...
- 微软发布手机版 Sample Browser。7000多示例代码一手掌握
今天早上,Sample Browser发布其全新的Windows Phone版本.至此,自2012年相继推出Desktop版.Visual Studio版,以及2013年推出Windows Store ...
- Android各个版本代号及其特性
- Android1.1 2008 年9月发布的Android第一版 - Android1.5 Cupcake (纸杯蛋糕) 2009年4月30日,官方1.5版本(Cupcake 纸杯蛋糕)的Andr ...
随机推荐
- vue自定义一个过滤器
vue如何自定义一个过滤器 html代码: <div id="app"> <input type="text" v-model="m ...
- 题解 P3978 【[TJOI2015]概率论】
这道题...好像是第一道我自己切出来的黑题... 先说一句,牛顿二项式蒟蒻并不会,可以说是直接套结论. 求诸位老爷轻喷. 这道题用卡特兰数搞. 卡特兰数这玩意从普及组初赛一路考到省选,十分有用. 如果 ...
- SpringBoot2.0中使用订阅redis的多个频道的消息
声明:参考文章:https://blog.csdn.net/myNameIssls/article/details/75471012?locationNum=2&fps=1 一·使用maven ...
- tp框架引入第三方sdk的经验总结
tp框架开发常用到第三方的接口,这时候需要引入第三方的sdk.例如:微信扫码支付sdk,阿里大于的淘宝sdk等等 首先到官网上下载对应php的sdk文件,通常会有至少一个实例代码. 1 新建一个控制器 ...
- 【hihocoder 1519】 逃离迷宫II
[题目链接]:http://hihocoder.com/problemset/problem/1519?sid=1098756 [题意] Chinese [题解] bfs题; 根据bfs的性质; 第一 ...
- NYIST 973 天下第一
天下第一时间限制:1000 ms | 内存限制:65535 KB难度:3 描述AC_Grazy一直对江湖羡慕不已,向往着大碗吃肉大碗喝酒的豪情,但是“人在江湖漂,怎能 不挨刀",”人在江湖身 ...
- Boost Log 基本使用方法
Boost Log 基本使用方法 flyfish 2014-11-5 依据boost提供的代码演示样例,学习Boost Log 的基本使用方法 前提 boost版本号boost_1_56_0 演示样例 ...
- java结合jQuery.ajax实现左右菜单联动刷新列表内容
http://域名/一级菜单ID-二级菜单ID/ 用这种URL请求页面,出现如图所看到的内容: 该页面包括四部分,顶部文件夹+左側菜单+右側菜单+右下側数据列表. 左側菜单包括一级菜单和二级菜单,点击 ...
- 【大话QT之十】实现FTP断点续传
应用需求: 网盘开发工作逐步进入各部分的整合阶段,当用户在client改动或新添加一个文件时.该文件要同步上传到server端相应的用户文件夹下,因此针对传输数据(即:上传.下载)这一块如今既定了三种 ...
- Mysql实战45讲 06讲全局锁和表锁:给表加个字段怎么有这么多阻碍 极客时间 读书笔记
Mysql实战45讲 极客时间 读书笔记 Mysql实战45讲 极客时间 读书笔记 笔记体会: 根据加锁范围:MySQL里面的锁可以分为:全局锁.表级锁.行级锁 一.全局锁:对整个数据库实例加锁.My ...