查看: 579|回复: 0
打印 上一主题 下一主题

[其他] unity优化相关

[复制链接]

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53488
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2015-12-25 06:55:24 |只看该作者 |倒序浏览

1.静态批量处理。unity自带。 注意物体无法随着父物体整体移动。
2.如果需要整体移动,但是又想静态处理。可以使用StaticBatchingUtility.Combine (this.gameObject); 创建一个空物体,将整体移动场景作为其子物体,将脚本挂载到空物体上。注意在Awake中,经过实际测试,DC降了一半。


3.遮挡剔除。遮挡物不多不建议使用。

4.优化粒子效果。降低模型定点数面片数目。多用相同材质。

5.删除不必要的mesh collider和animation。批量删除代码如下。注意编辑器模式
        [ContextMenu("编辑器模式下运行")] //选择这个模式运行,不需要启动游戏。 其中还有批量添加删除组件。
        void Start () {
                Transform[] allChildren = GetComponentsInChildren<Transform>(); //GameObject.GetComponentsInChildren
                foreach (Transform child in allChildren) {
                        if(child.name != "city"){
                                child.gameObject.AddComponent<BoxCollider>();
                                Animator an =        child.gameObject.GetComponent<Animator>();
                                DestroyImmediate(an);
                                Animation an1 = child.gameObject.GetComponent<Animation>();
                                DestroyImmediate(an1);
                                MeshCollider mesh = child.GetComponent<MeshCollider>();
                                DestroyImmediate(mesh);
                                AssetDatabase.SaveAssets();

                                //EditorApplication.SaveScene();

                        }               
                }       
        }


6.图集。然后用精灵分割。具体没看见效果。可能由于我的项目UI太少。

7.代码优化,少用临时变量,少用foreach,少用getcomponent。可使用transfrom。标签,拖拽。

后续会继续补充。欢迎大家指出错误和不足。

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-8-16 12:15 , Processed in 0.066180 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部