c0d3n4m 发表于 2021-8-26 11:29

Unity及C#优化

1、C#

(1)避免装箱拆箱;

(2)避免高消耗API的频繁调用;

例如:FindObjectsOfType、Camera.Main、GetComponentsInChildren、sharedMaterials

(3)空方法删除,尤其像Update、LateUpdate、FixedUpdate

(4)频繁改动字符串:StringBuilder替换“+”拼接;

(5)材质属性修改使用MaterialPropertyBlock,避免直接调用material/materials产生新实例

(6)组件层级不要太深,transform计算相关耗时

2、Lua与C#交互(我目前使用的是xlua)

(1)减少string参数传递,C#端获取是直接拷贝一个字符串到C#

(2)减少Vector3这种结构体的传递,C#端一般是通过Unpack()接口将lua传递的table中的每个值拷贝到结构体对应的值中,虽然不会产生GC,但是也有Unpack操作的消耗。
页: [1]
查看完整版本: Unity及C#优化