zoukankan      html  css  js  c++  java
  • Unity3d大会的部分总结

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

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

    高性能的游戏设计技巧

  • 相关阅读:
    MongoDB
    Redis主从复制
    在Flash中动画的制作方式:
    帧的类型:
    第一次做的补间动画,总结过程
    Python脚本:过滤取指定链接标题是否含有指定文字,并将其输出
    cmd命令:在ftp下载文件运行
    bat命令:在txt文本每行后加指定文字
    bat命令:在txt文本每行前加指定文字
    SSH爆破心得:
  • 原文地址:https://www.cnblogs.com/123ing/p/3906703.html
Copyright © 2011-2022 走看看