【发布时间】:2021-12-31 14:04:03
【问题描述】:
我需要将公共类中的受保护变量调用到另一个公共类的私有方法中的 if 语句中 我正在统一编写视频游戏,我需要在 if 语句中使用 bool 变量(显示角色是否体力不足)来确定角色是否可以运行 这就是我的代码的样子,排除了与问题无关的所有内容
Public class CharacterStats : MonoBehaviour
{
[SerialzeField] protected bool Tired;
}
Public class PlayerMovement : MonoBehaviour
{
Private void HandleRunning()
{
If (Input.GetKeyDown(KeyCode.LeftShift) && X != True)
{
Speed = RunSpeed;
}
}
}
X is where I want the Tired variable to be.
【问题讨论】:
-
将其设为
protected internal或添加公共getter 方法或只读属性,后者是最好的。 -
将其设置为内部保护会给我错误 CS0120:非静态字段、方法或属性“Characterstats.Tired”需要对象引用 诚然,我从未(或不知道如何)添加一个只读属性我也不知道公共 getter 方法我可以添加一个但不知道在其中做什么
-
普遍的共识是,您应该明确地将
[SerialzeField] private bool foo;用于 Unity 编辑器,将public bool Foo => foo;用于代码中的其他所有内容
标签: unity3d if-statement variables methods protected