我理解当(通常)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;
}
所以,我想知道......还有什么可能是问题?我可以查看的任何特定其他原因,可能导致生成此错误消息?
答案 0 :(得分:1)
你是对的,它告诉你一个物体不存在。在这种情况下,editorSart07Johnson
为空,您尝试从中获取属性(.enabled
)。上面的行调用GetComponent
,根据文档&#34;如果游戏对象附加了一个类型,则返回Type类型的组件,如果没有,则返回null。&#34;
所以答案是你的游戏对象没有附加SART07JohnsonEditor
类型的组件。