在Unity中,如何在可为null的上下文中初始化引用类型类属性



由于您应该使用Start()Awake()方法而不是Unity中的类构造函数来初始化类属性,因此VisualStudio会抱怨如果您在可为null的上下文中,则在退出构造函数时引用类型必须具有非null值:

#nullable enable
using UnityEngine;
public class NullableTest : MonoBehaviour
{
// Non-nullable field 'something' must contain a non-null value when exiting
// constructor. Consider declaring the field as nullable:
private GameObject something;
void Start()
{
something = new GameObject();
}
}

您可以将所有引用类型的属性设置为null,但这将迫使您在每次取消引用属性时检查null,即使在Start()方法中初始化了该属性之后也是如此。

在Unity有正确的处理方式吗?

使用null容错运算符";。就像这样:

private GameObject something = null!;

最新更新