在Unity中捕捉异常
本文关键字:异常 Unity | 更新日期: 2023-09-27 17:53:08
我正在编写一个非常简单的脚本,它利用带有InputField和按钮的画布。当玩家按下按钮时,脚本检查输入字段的文本。我遇到的问题是,如果没有输入任何内容,Unity将退出UnassignedReferenceException。
我试着捕捉这个异常,但我一定是做了一些可怕的错误:
public class Quiz : MonoBehaviour {
public GameObject quizPanel;
public GameObject input;
public void checkAnswer(){
Text answer = (input.GetComponent<Text>()) as Text;
try {
if (answer.text == "George Washington") {
Debug.Log("True");
}
}catch (UnassignedReferenceException)
{
Debug.Log ("Wrong answer");
}
}
}
1)我把你所有的代码放入一个try-catch
2)确保你记录了你的异常。
public class Quiz : MonoBehaviour {
public GameObject quizPanel;
public GameObject input;
public void checkAnswer(){
try {
Text answer = (input.GetComponent<Text>()) as Text;
if (answer.text == "George Washington") {
Debug.Log("True");
}
}catch (UnassignedReferenceException ex)
{
Debug.Log ("Wrong answer");
Log.Item(ex);
}
}
}
我有一些很好的理由相信您的input
变量在某种程度上无效。所以我建议你让你的try/catch
封装所有的代码:
public void checkAnswer(){
try {
Text answer = (input.GetComponent<Text>()) as Text;
if (answer.text == "George Washington") {
Debug.Log("True");
}
}catch (UnassignedReferenceException)
{
Debug.Log ("Wrong answer");
}
}