gpt4 book ai didi

c# - 什么时候应该使用 public、private 或 [SerializeField]?统一 C#

转载 作者:行者123 更新时间:2023-12-03 22:53:31 24 4
gpt4 key购买 nike

什么时候应该使用 public、private 或 [SerializeField]?哪个最实用?

最佳答案

首先,您需要确保了解公共(public)变量和私有(private)变量之间的区别。 Here是不同访问修饰符的官方文档。我强烈建议您通读它,但一个简单的版本是公共(public)变量可以被其他类引用,而私有(private)变量不能。
想象一下,如果你有一个 Player带有 Health 的类 field 。假设根据您的设计,您需要 GameManager类检查Player的生命值来确定玩家是否还活着。如果 Health字段是公开的,这可以通过引用 Player.Health如果 Health字段是私有(private)的,只能在 Player 内部访问类(class)。

在 Unity 的上下文中,公共(public)字段显示在检查器中,因此如果您附加 Player组件到 GameObject , Health字段将可见,您将能够在检查器中对其进行编辑。如果该字段是私有(private)的,您将不会在 Inspector 中看到它。

但是,在某些情况下,您希望在 Inspector 中显示私有(private)字段或在 Inspector 中隐藏公共(public)字段。为了这些目的,我们有 [SerializeField][HideInInspector] .顾名思义,[SerializeField]可以在私有(private)字段之前添加,使其在检查器和 [HideInInspector] 中可见可以在公共(public)字段之前添加以将其隐藏在检查器中。

声明一个新变量时,默认保持私有(private),除非您希望从另一个类引用它。然后,在编写完代码后,添加 [SerializeField][HideInInspector]如有必要,以在 Inspector 中实现所需的组件外观。

关于c# - 什么时候应该使用 public、private 或 [SerializeField]?统一 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52906797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com