在unity中为什么应该使用[SerializeField],以及何时使用它?
计算机/软件
0 366
0
该提问暂无详细描述
收藏
2021-01-23 04:14 更新 同步 •  1253
共 1 个回答
高赞 时间
0

使用SerializeField属性会导致Unity序列化任何private变量。这并不适用于c#中的静态变量和属性。

当你需要你的变量是私有的,但又希望它显示在编辑器中时,你可以使用SerializeField属性。

例如,这不会在编辑器中显示:

private float score;

这是因为它是一个private变量,但是下面的变量会在编辑器中显示:

[SerializeField]
private float score;

那是因为对它应用了SerializeField,并且告诉Unity对其进行序列化然后将其显示在编辑器中。


注意,private变量在c#中的作用要比Unity大得多,还有public变量。将变量标记为private意味着你不希望另一个脚本能够访问该变量。将变量标记为public意味着你希望其他脚本能够访问该变量。

有时,你希望其他脚本能够从另一个脚本访问变量,但不希望公共变量显示在编辑器中。 你可以使用[HideInInspector]属性隐藏公共变量。

这将在编辑器中显示:

public float score;

这不会在编辑器中显示:

[HideInInspector]
public float score;

收藏
2021-01-23 04:53 更新 gitvrar •  435