如何在此特定情况下检查为空
对于(x数量)任务中具有4(1,2,3,D)级别的动态菜单。当玩家点击一个按钮但是当他点击下一个按钮时,我有一个Typer脚本文本,下一个Typer将文本写在另一个文本上,因为这两个文本都是(并且需要)在同一个地方。如何在此特定情况下检查为空
有喜欢使用公共gameobjects + 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;
}
首先你应该检查是否存在它,然后使用GetComponent
否则你将得到一个null exception
if(GameObject.Find("TextLevel3") != null)
text = GameObject.Find("TextLevel3").GetComponent<Typer>().enabled = false;
一旦C#6被释放,你可以使用?。运算符为此,所以这将成为: 'text = GameObject.Find(“TextLevel3”)?. GetComponent
很好的知道 – 2015-02-08 07:07:56
' var t = GameObject.Find(“TextLevel3”); if(t!= null)text = t ...' – 2015-02-07 20:11:58