由于您应该使用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!;