微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity C#中!= null检查和null安全运算符之间有什么区别?

如何解决Unity C#中!= null检查和null安全运算符之间有什么区别?

我试图通过使用公共变量有条件地在Unity中显示GameObject。如果在组件窗口中设置了变量,那么我应该隐藏gameObject以便将来激活它。如果没有设置,那么我什么都不要做我有这个,但是给了我NullReferenceException: Object reference not set to an instance of an object

public GameObject optionalGO; //May be set from GUI

void Start(){
    optionalGO?.SetActive(false); //Gives error
}

然后我更改了行,对此给出了错误,并且工作正常:

if(optionalGO!= null) optionalGO.SetActive(false);

我不了解它们之间的区别,关于脚本的其余部分或上下文没有别的说法。为什么这些行不相等?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。