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]