GUITexture上的NullReferenceException

时间:2015-01-02 05:53:15

标签: c# unity3d position nullreferenceexception guitexture

我想从脚本中添加GUITexture但是它有错误,然后我尝试插入GUITexture(来自GameObject>创建其他> GUI纹理)然后将其链接到脚本 但是当我尝试使用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);
}

2 个答案:

答案 0 :(得分:0)

问题

当您致电new GUITexture()时,Unity将只生成您的temp对象null。然后,当您尝试使用它时,您将获得NullReference Exception。为什么?由于GUITexture继承自Behaviour,因此它就是Unity的构建方式。

解决方案

您已经通过编辑器拖动对GUItexture的引用,所以您只需删除此行。

// Remove this line
temp = new GUITexture ();

答案 1 :(得分:0)

除了FunctionR的答案之外,在尝试对它做任何事情之前,最好检查一个对象是否为空。

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);
}