Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该何时使用公共、私有或[序列化字段]?统一C#_C#_Unity3d - Fatal编程技术网

我应该何时使用公共、私有或[序列化字段]?统一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中实现所需的组件外观