C++台北Unity开发者研讨会 笔记

本文转自:http://ndark.wordpress.com/2013/05/12/20130511-台北unity开发者研讨会-笔记/
(墙外)

C++ 1C++ 2

说明

正文就只是是记,若有笔误敬请谅解。

系参考连结

  1. 你要清楚之Unity引擎知识

  2. Unity Asia Bootcamp 台北场–
    线上见到

  3. Unity 今日篇次等当高设置亚洲开发者研讨会–
    巴哈姆特

  4. Unity着色器系统介绍(幻灯片)

  5. Unity 开发者论坛-台北场(Unity ASIA BOOTCAMP TOUR TAIPEI
    )研讨会
  6. 个别专访:Unity 教育说明和台湾高等教育的纵深对曰| Unity IN |
    社群✕媒体✕平台
  7. Unity –
    Mecanim性能跟优化

总论

  1. 开发者成长速度与左侧快是Unity在台湾之优势。
  2. 在Facebook与360刘灠器中预设安装Unity Plugin。
  3. 大陸有超過400個Android商城。
  4. 证实培训(新竹教育大学,高应科大等校)。
  5. 鬼武者魂由Unity開發,Server端使用PHP。
  6. 开发者必须使顾的老三等级:开发-平台-广告金流。

汝不可不知的Unity開發技巧

  1. Unity三種網頁發佈的法:WebPlayer,Flash(效能低下),Chrome
    NaCl(Native C++,不待Plugin)。
  2. Plugin的本分别:Stable,Release,Beta,Alpha。可以修改网页码来指定plugin的下载版本及自。
  3. Web缓存许可证(收费):“我们提供的统一Web播放器,可以以该地缓存的本管之例外扩展这是根据我们的业务支出团队取得了同一宗合计,授权一般是授权给开发者提供了于生之预想收入与。没有规模比较小之基本功“。
  4. 怎么样动态更新Unity产品之Source
    Code:透过将程式码输出为二维之TextAsset,然后以卷入至AssetBundle中。
  5. Unity4已帮助动态字型,nGUI2.6才拉动态字型(东亚书)。(EZGUI时就算早已帮带-感谢永康ㄉㄉ堤供情报)
  6. GameObject.Destroy不见面变除了该物件的资源(Mesh,Texture,Material等)。
  7. Scaleform的无非支援Unity3.5.x
  8. 网路伺服器的清单:Photon,Electron,SmartFox,uLink,SlimNet,SlimIOCP。
  9. NavMesh.Triangle()函式
  10. 天皇的剑<蓝港在线>使用Unity开发的2D游乐。
  11. 开2D玩耍的插件:Sprite
    Manager,Ex2D。
  12. Unity Cache Server是出团队就此来以不同平台(资源)发布时的加快法。
  13. Asset Server已无建議使用。
  14. 狂风,91且见面自己出对Unity的金流SDK。
  15. 经设定优化发布的活档案大小。

走平台优化中心

  1. 每个动态物件(角色)的三角形形面数以300至2000内。
  2. 每个动态物件(角色)的Skinned Mesh Renderer仅用一个。
  3. 每个动态物件(角色)的材质数但所以一个。
  4. 每个动态物件(角色)的龙骨限制在30清以下。
  5. 使用Dynamic
    Batching合那些杂类的动态物件。
  6. 静态物件设定为Static,方可进行Static Batching。
  7. 当3.5采用静态物件时移除Animation的机件。
  8. 地势(Terrain)的开头解析度設定為257以下。
  9. 地势(Terrain)筆刷貼圖數目控制在4以下。
  10. 贴图解析度大小决定在1024以下。
  11. 3D游戏展Mipmap会增加记忆体但是只是加速效能。
  12. 貼圖uv控制在0~1。
  13. 乐档案利用ogg/mp3,短音效使用wav。
  14. 光源使用Light Map/Light Probe来取代动态光源。
  15. 动方向就。
  16. Pixel Light控制在1~2。
  17. 操纵摄影机的z-near与z-far平面。
  18. 设定物件的去除距离。
  19. 小物件又生远得时刻即便无须打。
  20. 粒子系统将粒子总数控制以200以下。
  21. 粒子系统每个发射器发射粒子控制以50以下。
  22. 粒子的轻重缓急越聊越好。
  23. 万分小的粒子去掉alpha channel。
  24. 无须开粒子的磕碰。
  25. 碰撞類型不要采取Mesh Collider。
  26. 減少使用Animation組件。
  27. 不缩放的卡通片,去除Scale Curves的参数。
  28. 如果一味下一个AnimationClip,就应用Unity 3.5之动画系统。
  29. 下Macanim(Unity 4的動畫系統),要衬托以Body Mask。
  30. IK選用Generic Mode。Humanoid Mode在Android上會耗費嚴重的效应。
  31. 渲染时减少用Alpha测试和alpha混合。
  32. Draw Call
    Batching分为Static与Dynamic。后者点数控制在900下,若含Position,Normal,UV,则是300。
  33. 行使Texture Packing将不同物件的材料变为相同,但要手动修改UV。
  34. 使用遮挡剔除时常小心翼翼设定谨慎设定封堵器(墙)与Occludee的角色。设定PVS只,PV和动态目标,自动生成门户(会变动的派别)。
  35. 程式码,使用类变数来暂存指标。
  36. 设定Fixed Delta Time在0.04到0.067之间。
  37. IOS发布经常使用的飞跃和坏不支持之揭晓形式。
  38. Shader减少使用数学函式,减少用Discard。Vertex使用Float,TextureUV使用Half,颜色及只用Fixed。
  39. 于PowerVR的硬体下有上下简单只Vec2反而会于快。
  40. 使用Profiler。
  41. 用Manager的架来控制物件会比拿每个物件都悬挂及脚论效率高。

资产包

  1. Resource这种读取资源的状(有2G限制)会渐渐移除,统一改用Asset
    Bundle(可离线创造)
  2. Web缓存只能放资产包。
  3. Asset Bundle建出之后是来相容性的,ios与android的Asset
    Bundle与另外平台互不相容。
  4. BuildPipeline.BuildAssetBundle()是因此来树立多独资金的资产包。
  5. BuildPipeline.BuildStreamedSceneAssetBundle()则是用来树立多单场景的资产包。
  6. 用BuildAssetBundleOptions.DeterministicAssetBundle来树针对基金的杂凑的ID做增量发布。
  7. 资金 assetBundleObj = WWW.AssetBundle->使用中之资产包。 新
    捆绑可重新开展加密动作。AssetBundle.Load() –
    >载入资产。
  8. 卸載流程:
    GameObject.Destroy()
    AssetBundle.Unload
    (false)只會卸載WWW.AssetBundle,AssetBundle.Unload(true)則會卸載WWW.AssetBundle以及相關資源。true的来意相較於使用false再运Resources.UnloadUnusedAssets
    ()作用並不平等。 把同之資源基底打包為Asset捆绑
    使用BuildPipeline.PushAssetDependencies()来树立资金管里面的关连性。
  9. 范例1:把共同过渡资源打包。
    Push
    Build共接资源包
    Push
    Build物件包1
    Pop
    Push
    Build物件包2
    Pop
    Pop
  10. 范例2:把Level所用的资源为做成依赖形式。
    Push
    Build Level1
    Push
    Build Level2 (依赖于Level1)
    Push
    Build Level3 (依赖于Level2与Level2)
  11. 范例3:把场景包依赖让联合接资源包
  12. 将设定各资源包依赖关系的XML设定为ScriptableObject并封装到Asset
    Bundle内
  13. 用气象切割为Asset Bundle的艺术,等分,如切成九宫格。
  14. 以气象切割为Asset
    Bundle的点子,分殊物件,中物件,小物件。让老物件先念入先显示。
  15. WWW.LoadFromCacheOrDownload()可设定版号。
  16. WWW.LoadFromCacheOrDownload的crc产生艺术而由此错误使用以及一个函式来有真确值。
  17. 程式碼的加密過程:Assembly->Byte->TextAsset->加密->Asset
    Bundle->加密->TextAsset->Asset Bundle。
  18. 使native dll来维护重要性程式码,但Web应用不克动用dll。

合在色器系统

  1. 通过Shader Name就见面自动发出选择Shader的架构。
  2. SubShader可视为真正的Shader,由上而下执行。
  3. SubShader的Tag表示什么尽:可指定执行之次第。
  4. SubShader的Tag表示什么表現。
  5. 著色方式Vertex Lit:快,限制多。
  6. 着色方式Forward:将灯光分为最重大+不重大和其他重要。区分方式而手动,也可以按照强度及趋势来自动决定。
  7. 着色方式Deferred:手机不能够采取,也非协助透明。
  8. CG/HSSL会被转译为GLSL。
  9. 利用基本Shader会需要写132推行的程式,使用Surface
    Shader来开隐藏简化:标明surfae code与light code。
  10. #pragma debug可以用藏的程式码显示在程式码中。
  11. 经过user define keyword将参数传入shader中。