我应该何时使用公共、私有或[序列化字段]?统一C#
我应该何时使用公共、私有或[序列化字段]?哪个最实用?首先,您需要确保了解公共变量和私有变量之间的区别。”这是不同访问修饰符的官方文档。我强烈建议您通读它,但一个简单的版本是公共变量可以被其他类引用,而私有变量不能。 想象一下,如果你有一个我应该何时使用公共、私有或[序列化字段]?统一C#,c#,unity3d,C#,Unity3d,我应该何时使用公共、私有或[序列化字段]?哪个最实用?首先,您需要确保了解公共变量和私有变量之间的区别。”这是不同访问修饰符的官方文档。我强烈建议您通读它,但一个简单的版本是公共变量可以被其他类引用,而私有变量不能。 想象一下,如果你有一个Player类和一个Health字段。假设根据您的设计,您需要一个GameManager类来检查玩家的健康状况,以确定该玩家是否还活着。如果Health字段是公共的,可以通过引用Player.Health 如果Health字段是私有字段,则只能在Player类
Player
类和一个Health
字段。假设根据您的设计,您需要一个GameManager
类来检查玩家的健康状况,以确定该玩家是否还活着。如果Health
字段是公共的,可以通过引用Player.Health
如果Health
字段是私有字段,则只能在Player
类中访问该字段
在Unity的上下文中,公共字段显示在inspector中,因此如果将Player
组件附加到游戏对象
,则健康
字段将可见,并且您可以在inspector中对其进行编辑。如果该字段是私有的,您将不会在Inspector中看到它
但是,在某些情况下,您希望在检查器中显示私有字段,或在检查器中隐藏公共字段。出于这些目的,我们有[SerializeField]
和[hideininstit]
。正如名称所示,[SerializeField]
可以添加到私有字段之前,使其在检查器中可见,而[HideInInstit]
可以添加到公共字段之前,将其隐藏在检查器中
在声明新变量时,默认情况下将其保持为私有,除非您希望从其他类引用它。然后,在编写代码后,如有必要,添加[SerializeField]
和[HideInInstitct]
,以在Inspector中实现所需的组件外观