GUITexture 上的 NullReferenceException
NullReferenceException on GUITexture
我想从脚本中添加 GUITexture 但它出错了,然后我尝试插入 GUITexture(从 GameObject > 创建其他 > GUI Texture)然后 link 它到脚本
但是当我尝试使用 pixelInset 移动 guitexture 时,出现错误
NullReferenceException
UnityEngine.GUITexture.get_pixelInset () (在 C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/Graphics.cs:3254)
这是脚本
public GUITexture temp;
void Start () {
temp = new GUITexture ();
temp.pixelInset.Set (100,100,100,100);
}
问题
当您调用 new GUITexture()
时,Unity 只会将您的 temp
对象设为 null
。然后,当您尝试使用它时,您会得到一个 NullReference Exception
。为什么?因为GUITexture
继承自Behaviour
,Unity就是这样构建的。
解决方案
您已经通过编辑器将引用拖到 GUItexture
,因此您只需删除此行即可。
// Remove this line
temp = new GUITexture ();
除了 FunctionR 的回答之外,在尝试对对象执行任何操作之前检查对象是否不为 null 总是好的。
public GUITexture temp;
void Start () {
// temp = new GUITexture (); <- Overrides the texture your assigned in the editor
if (temp) temp.pixelInset.Set (100,100,100,100);
}
我想从脚本中添加 GUITexture 但它出错了,然后我尝试插入 GUITexture(从 GameObject > 创建其他 > GUI Texture)然后 link 它到脚本 但是当我尝试使用 pixelInset 移动 guitexture 时,出现错误
NullReferenceException UnityEngine.GUITexture.get_pixelInset () (在 C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/Graphics.cs:3254)
这是脚本
public GUITexture temp;
void Start () {
temp = new GUITexture ();
temp.pixelInset.Set (100,100,100,100);
}
问题
当您调用 new GUITexture()
时,Unity 只会将您的 temp
对象设为 null
。然后,当您尝试使用它时,您会得到一个 NullReference Exception
。为什么?因为GUITexture
继承自Behaviour
,Unity就是这样构建的。
解决方案
您已经通过编辑器将引用拖到 GUItexture
,因此您只需删除此行即可。
// Remove this line
temp = new GUITexture ();
除了 FunctionR 的回答之外,在尝试对对象执行任何操作之前检查对象是否不为 null 总是好的。
public GUITexture temp;
void Start () {
// temp = new GUITexture (); <- Overrides the texture your assigned in the editor
if (temp) temp.pixelInset.Set (100,100,100,100);
}