2_脚本基本策略
2023-06-21 23:07:16来源:哔哩哔哩
在写代码的过程中保持良好的代码习惯也是很重要的,这样可以尽量避免不必要的性能损失,可以才以下几点入手
使用最合理的方法完成任务
【资料图】
在编程过程中可以有很多方法达到同同样的需求,这时就使用最合理的那个方法就行
移除空的回调定义
Unity特定的生命周期方法如:Awake Start Update 即使这些方法里面是没有任何代码的
Unity也会将这些方法挂载到回调中。这会浪费一些CPU资源,特别是场景中有多个MonoBehaviour时
缓存组件引用
在一段频繁调用到的代码中如果需要获取多个引用时那么这样可能会造成对cpu的浪费,这时应该声明成员变量去缓存这个引用,尽管这样会增加一些内存消耗,但通常是值得这样做的
共享计算输出
如果多个对象需要获取一个相同的计算结果,那么让它们之间共享结果就行
限制一些方法的更新频率
有些函数不会在整个对象的生命周期内都需要更新,或者更新的频率也没必要快到每帧都更新,可以把有这些特点的方法从Update调用改为使用协程调用,这样会好很多
使用正确的方式设置对象的父节点
在实例化一个对象时最好将设置父节点的任务交给Instantiate()方法,如果实例好了再设置父节点就又要重新分配内存
将引用分配给预先存在的变量
在Mono对象中私有变量是不会在Inspector面板中显示的,这时如果有变量需要引用场景中的其它对象,就只能在运行时赋值,可以使用[SerializeField]属性将private变量在Inspector面板中暴露出来,这样就可以通过编辑器界面方便的改变它,同时又不破坏其封装性
创建自定义的Update
将场景中所有需要调用Update方法的对象集中起来,在一个Update中调用,这样做可以节省调用开销提高缓存命中,比让它们各自调用自己的Update方法要更加高效
Update接口
Update对象
Update管理
关键词: