Unity3d - 调用公共静态变量性能



我想知道我是否从更新或FixedUpdate函数中的另一个脚本调用公共静态变量,这会影响性能吗?

像这样:

[RequireComponent(typeof(Rigidbody))]
public class CC : MonoBehaviour
{
//Components
public static Rigidbody rigidbodys;
void Awake()
{
rigidbodys = GetComponent<Rigidbody>();
rigidbodys.freezeRotation = true;
rigidbodys.useGravity = false;
rigidbodys.isKinematic = true;
}
}

在另一个脚本中:

void FixedUpdate()
{
if(CC.rigidbodys.velocity > 1)
{
DoSomething();
}
}

如果我使用这种方式,是否会降低性能?

这看起来非常好。 在您的固定更新中,您只能访问刚体(在唤醒时设置一次(,这很便宜。 您还可以将普通的公共刚体绑定设置为,并在检查器中传递您配置的游戏对象。然后,您可以将内容传递给静态刚体。所以你清理觉醒者。

void Awake()
{
rigidbodys = ridbdy;
}

从性能方面(>意味着更好(: 静态> GetComponent/FindObject>单例模式

只要你把getComponent((排除在update((之外,它就会比在其他脚本中计算速度更快。

最新更新