原地址: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. 【SQL】关于存储过程调用过程中事务的点点滴滴

    1.调用两个存储过程 ---------------------------------------------------------------- -- 表[dbo].[aaa_test]中[id ...

  2. Objective-C 【完整OC项目-购票系统-系统分析-代码实现】

    电影院买票系统/演唱会买票系统 需求分析: 首先我们进入系统,然后会选择买电影票还是买演唱会票,所以这牵扯两个系统的合成.但是我们知道都是买票系统,所以我们可以先创建一个类,属于购买电影票和演唱会的票 ...

  3. java坑之无法创建线程

    环境:linux 错误:java.lang.OutOfMemoryError: unable to create new native thread 原因:OS对线程是有限制 解决办法: 在Linux ...

  4. pickle模块的基本使用

    pickle是python的biult-in模块: python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储 ...

  5. COM 学习小记录

    COM组件程序:模块,它可以是 动态连接库(DLL) && 可执行程序(EXE),称为 进程内组件(in-of-process component) && 进程外组件( ...

  6. mysql中的count(primary_key)、count(1)、count(*)的区别

    表结构如下: mysql> show create table user\G; *************************** 1. row ********************** ...

  7. Android TextUtil

    Android中计算textView长度问题 今天有一个需求,需要TextView显示两行的信息,但是右下角区域需要空出来,要来显示一张小图片,要实现的效果如图所示. 这里遇到的问题是计算TextVi ...

  8. JS的IE和FF兼容性问题汇总

    转自:蓝色理想 以下以 IE 代替 Internet Explorer,以 MF 代替 Mozilla FF 一.函数和方法差异 1. getYear()方法 [分析说明]先看一下以下代码: var ...

  9. linux安装Vmware的时候出现“Could not open /dev/vmmon”

    在centos6.6上安装了Vmware之后运行出现下列问题 VMware Workstation : Could not open /dev/vmmon: No such file or direc ...

  10. linux内核编译,内核参数修改

    核心(kernel):/boot/vmlinuz-version version 带发行包版本,本地版本内核模块(kernel object): /lib/modules/version/ 内核设计: ...