我正在尝试从Unity中的Image获取sprite,但遇到了一个问题。我正在使用以下代码:
void Start () {
Sprite sprite = this.gameObject.GetComponent<Image> ().sprite;
if (sprite == null) {
Debug.Log ("NULL");
} else {
Debug.Log ("NOT NULL");
}
}
如果sprite是空的,它不会识别为“null”。为什么?以及如何修复它?
2条答案
按热度按时间hgc7kmma1#
对我很有效
我不知道您的使用情形,但我可以建议一些解决方案
您不应该在Unity中使用
==
运算符检查引用,您可以阅读更多关于here和here的信息,并在那里找到问题的解决方案。tnkciper2#
如果您的组件是Image,则右边的属性是
Source Image
,但如果您使用的是Sprite Renderer组件,则属性是Sprite
。这两个组件之间的区别很简单,
Image
组件用于UI元素,SpriteRenderer
用于世界空间环境。您可以通过这些文档阅读有关这两个组件的更多信息。