【发布时间】:2015-04-07 20:03:36
【问题描述】:
对于在 (x 数量) 任务中具有 4 (1,2,3,D) 级别的动态菜单。我在文本上有一个打字机脚本,当玩家单击一个按钮但当他单击下一个按钮时激活:下一个打字机将文本写在另一个文本上,因为两个文本都(并且需要)在同一个地方。
还有其他解决方案,例如使用公共游戏对象 + SetActive,但我会有很多按钮,所以这会很不方便,所以改为:
我会创建一个函数,在启用新任务之前禁用该任务的所有找到的文本,但 TextLevel3 有时根本不存在并返回 null(referenceExeption) 所以我想检查这个并在它是否为 null 时中断或继续如果它是安全。我只是不确定如何结合 Gameobject.Find 和 GetComponent 来做到这一点
void DisableTexts()
{
text = GameObject.Find("TextLevel1").GetComponent<Typer>().enabled = false;
text = GameObject.Find("TextLevel2").GetComponent<Typer>().enabled = false;
text = GameObject.Find("TextLevelD").GetComponent<Typer>().enabled = false;
//This is what i need:
Check if (TextLevel3 != null){go ahead} or if (TextLevel3 = null){break;(?)}
text = GameObject.Find("TextLevel3").GetComponent<Typer>().enabled = false;
}
public void CheckLevel (string selectedLevel)
{
DisableTexts();
GameObject.Find("TextLevel" + selectedLevel).GetComponent<Typer>().enabled = true;
CurrentMission = "Level" + missionSelected + "." + selectedLevel;
}
【问题讨论】:
-
var t= GameObject.Find("TextLevel3"); if(t!=null) text=t...
标签: c# android unity3d nullreferenceexception