gpt4 book ai didi

c# - 在 Unity3D 中声明类属性的最佳方式

转载 作者:太空宇宙 更新时间:2023-11-03 22:32:27 24 4
gpt4 key购买 nike

我是 Unity 3D 开发的新手,我想知道什么是声明稍后从编辑器分配的类属性的最佳方式。我主要看到了两个:

public class MyObject : MonoBehavour {

public GameObject relatedObect;

}

public class MyObject : MonoBehavour {
[SerializeField]
private GameObject relatedObect;

}

我理解是第二种形式,因为保持了封装,但我不确定。

最佳答案

请考虑在您声明类的示例中 fields ,而不是 properties .他们都是一个类的成员,但是他们有很大的不同。

为了这个答案,我将重点关注您的示例,所以我将讨论字段。

public[SerializeField] private 都允许您在 Unity Inspector 中注入(inject)一个值,但它们在脚本中的行为不同。

1 - 公共(public)领域

当您希望在另一个类中使用或设置公共(public)字段时,您可以声明一个公共(public)字段。这种选择不利于封装,因为其他脚本可能会访问它。如果您需要该字段可访问,它仍然可能是预期的行为。

2 - [SerializeField] 私有(private)字段

当你想在检查器中设置项目时使用它,但你不希望其他类看到它。此选项更适合封装,因为这样其他脚本就无法访问或更改此字段。

关于c# - 在 Unity3D 中声明类属性的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56785554/

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