NullReferenceException @ OnGUI

时间:2014-11-14 15:20:17

标签: unity3d nullreferenceexception

我理解当(通常)Unity告诉我myProg脚本的第54行中的某些内容不存在时,会导致以下错误消息:

NullReferenceException: Object reference not set to an instance of an object
myProg.OnGUI () (at Assets/Scripts/Editors/myProg.cs:54)

但据我所知,无论如何都没有任何遗漏......

以下是代码段的相关部分,第54行是.enabled(中间行)的位:

if( GUILayout.Button("SART07Johnson") )
    {
        stage.setFatigueInductor( new Sart07JohnsonDefinition(GetComponent<ExperimentCreator>().getExperiment().getAvailableTableName("SART07Johnson")) );
        stage.setTypeOfFI( FatigueType.SART07Johnson );
        SART07JohnsonEditor editorSart07Johnson = GetComponent<SART07JohnsonEditor>();
        editorSart07Johnson.enabled = true;
        editorSart07Johnson.Init( (Sart07JohnsonDefinition)stage.getFatigueInductor(), this.stage.StageName,GetComponent<ExperimentCreator>().getExperiment().GetExperimentName() );
        GetComponent<NavigationTree>().CurrentEditor = editorSart07Johnson;
        this.enabled = false;
    }

所以,我想知道......还有什么可能是问题?我可以查看的任何特定其他原因,可能导致生成此错误消息?

1 个答案:

答案 0 :(得分:1)

你是对的,它告诉你一个物体不存在。在这种情况下,editorSart07Johnson为空,您尝试从中获取属性(.enabled)。上面的行调用GetComponent,根据文档&#34;如果游戏对象附加了一个类型,则返回Type类型的组件,如果没有,则返回null。&#34;

所以答案是你的游戏对象没有附加SART07JohnsonEditor类型的组件。