代码层面优化

优化:
unity只维护localPos, localeRot, local Scale,所以尽量避免直接只用position, rotation, scale. 如果必须要使用,则可以使用caching防止同一帧里多次修改transform
1 Update\LateUpdate\FixedUpdate\Start
2 GameObject.Find
3 Component cache, GetComponent("")
4 DistToHost Change to SqrMagnitude, magnitude所有地方 Update中(替换)
5 caching transform changes
6 gameObject != null --> !System.Object.ReferenceEquals(gameObject, null) 减少native-managerment bridge (数量巨大才会有效果)

优化内存使用

通过Unity Profiler里的GC Alloc一列,可以看到具体的内存申请。在用户操作应用的时候,尽可能让其接近0。(当然了,如果是载入资源就没事)

  • 尽可能重用集合(例如Lists, HashSets)

  • 避免字符串拼接,可以考虑重用StringBuilder来完成

  • 避免匿名函数和闭包

Foreach

当循环开始时会申请一个Enumerator,这也是广为人知的Mono的锅了…别这么写就行。

装箱问题(Boxing)

当将值类型当做引用类型传入时,会在堆顶临时分配一个值来用

转载于:https://www.cnblogs.com/mttnor/p/6247725.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值