• 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: 提升检索的速度

     

    打包Androidjar文件命令: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:

                    http://blog.csdn.net/sgnyyy/article/details/23775219

  • 相关阅读:
    机器语言与汇编语言的关系
    环境变量
    .NET程序运行过程
    【转】计算机组成原理
    将大型 Page Blob 的页范围进行分段
    价格更低、SLA 更强的全新 Azure SQL 数据库服务等级将于 9 月正式发布
    把二元查找树转换成排序的双向链表
    初识C++
    Linux企业级项目实践之网络爬虫(25)——管理源代码之SVN
    Linux企业级项目实践之网络爬虫(24)——定制规则扩展为垂直爬虫
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7048955.html
Copyright © 2020-2023  润新知