使用访问变量会对性能产生影响。c#unity3d中的参数
如果有人问这个问题,我很抱歉,因为这可能很简单,或者答案很明显 你好,在我的游戏中,有几行代码,其中每个引用都来自一个使用访问变量会对性能产生影响。c#unity3d中的参数,c#,oop,unity3d,singleton,C#,Oop,Unity3d,Singleton,如果有人问这个问题,我很抱歉,因为这可能很简单,或者答案很明显 你好,在我的游戏中,有几行代码,其中每个引用都来自一个GameManager.cs,这是一个单例类 例如: public void someFunction() { int a = GameManager.instance.healthController.something_1; GameManager.instance.healthController.updateHealth(); GameManage
GameManager.cs
,这是一个单例类
例如:
public void someFunction()
{
int a = GameManager.instance.healthController.something_1;
GameManager.instance.healthController.updateHealth();
GameManager.instance.healthController.updateArrows();
GameManager.instance.healthController.updateRange();
}
以上代码是否会对性能产生任何影响,因为我正在使用。在多个位置访问变量和函数
我是否需要进行任何更改以改进编码风格和性能(如果有)
我是否需要进行任何更改以改进编码风格和性能
如果有的话
否。你的代码看起来不错。如果需要一个实例,那么就这样做。它不会影响游戏的性能
访问另一个脚本时,您应该担心的是重复执行GetComponent()
或GameObject.FindXXX()
来查找脚本,而不是缓存脚本,但您没有这样做,所以这很好
public void someFunction()
{
int a = GameManager.instance.healthController.something_1;
GameManager.instance.healthController.updateHealth();
GameManager.instance.healthController.updateArrows();
GameManager.instance.healthController.updateRange();
}
可以改写为:
public void someFunction()
{
var controller = GameManager.instance.healthController;
int a = controller.something_1;
controller.updateHealth();
controller.updateArrows();
controller.updateRange();
}
以上代码是否会对性能产生任何影响,因为我正在使用。到
在多个位置访问变量和函数
使用我建议的代码版本,性能会稍好一些(因为它不需要继续“查找”实例和健康控制器)。但是,实际上,您不太可能注意到它。是的,我认为您可以在类级别从方法中声明变量“a”。然后避免每次调用该方法时都创建变量 这是一个很好的游戏编程实践
private int a;
public void someFunction()
{
a = GameManager.instance.healthController.something_1;
GameManager.instance.healthController.updateHealth();
GameManager.instance.healthController.updateArrows();
GameManager.instance.healthController.updateRange();
}