【发布时间】:2026-01-13 08:20:07
【问题描述】:
我想知道如果我在 Update 或 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();
}
}
如果我用这种方式,会不会降低性能?
【问题讨论】:
-
与问题无关,但我认为您不希望刚体成员是静态的。 CC 是一种单一行为,可能附加到许多不同的游戏对象,每个都有自己的 OWN 刚体。静态修改器意味着所有 CC 实例将共享相同的单个刚体参考。 [如果 CC 是一个单例(意味着场景中只有一个),那么它可能并不重要。]
标签: c# performance variables unity3d static