当 If 语句失败时我可以调用一个函数吗
Can i call a function when If statement fails
void Update()
{
bool playerInView = false;
foreach (RaycastHit hit in eyes.hits)
{
if (hit.transform && hit.transform.tag == "Player")
{
playerInView = true;
}
}
if (playerInView)
{
print ("Detected");
}
else
{
void OnGUI () {
GUI.Box (new Rect (10, 10, 100, 90), "Loader Menu");
}
}
}
}
当我在 Unity 中 运行 时,它说 void
不能在此上下文中使用
但是当我删除函数并调用打印时它就可以工作了
部分
else
{
void OnGUI () {
GUI.Box (new Rect (10, 10, 100, 90), "Loader Menu");
}
}
不是有效的 C# 语法;不能以这种方式在本地定义函数。也许你的意思是
else
{
GUI.Box(new Rect (10, 10, 100, 90), "Loader Menu");
}
尝试:
if (playerInView)
{
print ("Detected");
}
else
{
GUI.Box (new Rect (10, 10, 100, 90), "Loader Menu");
}
首先,尝试在可以理解的上下文中写下您的问题。
无论如何,你应该这样写,
void Update()
{
bool playerInView = false;
foreach (RaycastHit hit in eyes.hits)
{
if (hit.transform && hit.transform.tag == "Player")
{
playerInView = true;
}
}
if (playerInView)
{
print("Detected");
}
else
{
OnGUI();
}
}
void OnGUI()
{
GUI.Box(new Rect(10, 10, 100, 90), "Loader Menu");
}
这样做:
bool playerInView = false;
void Update()
{
playerInView = false;
foreach (RaycastHit hit in eyes.hits)
{
if (hit.transform && hit.transform.tag == "Player")
{
playerInView = true;
}
}
if (playerInView)
{
print ("Detected");
}
}
void OnGUI()
{
if (!playerInView)
{
GUI.Box (new Rect (10, 10, 100, 90), "Loader Menu");
}
...
}
void Update()
{
bool playerInView = false;
foreach (RaycastHit hit in eyes.hits)
{
if (hit.transform && hit.transform.tag == "Player")
{
playerInView = true;
}
}
if (playerInView)
{
print ("Detected");
}
else
{
void OnGUI () {
GUI.Box (new Rect (10, 10, 100, 90), "Loader Menu");
}
}
}
}
当我在 Unity 中 运行 时,它说 void
不能在此上下文中使用
但是当我删除函数并调用打印时它就可以工作了
部分
else
{
void OnGUI () {
GUI.Box (new Rect (10, 10, 100, 90), "Loader Menu");
}
}
不是有效的 C# 语法;不能以这种方式在本地定义函数。也许你的意思是
else
{
GUI.Box(new Rect (10, 10, 100, 90), "Loader Menu");
}
尝试:
if (playerInView)
{
print ("Detected");
}
else
{
GUI.Box (new Rect (10, 10, 100, 90), "Loader Menu");
}
首先,尝试在可以理解的上下文中写下您的问题。 无论如何,你应该这样写,
void Update()
{
bool playerInView = false;
foreach (RaycastHit hit in eyes.hits)
{
if (hit.transform && hit.transform.tag == "Player")
{
playerInView = true;
}
}
if (playerInView)
{
print("Detected");
}
else
{
OnGUI();
}
}
void OnGUI()
{
GUI.Box(new Rect(10, 10, 100, 90), "Loader Menu");
}
这样做:
bool playerInView = false;
void Update()
{
playerInView = false;
foreach (RaycastHit hit in eyes.hits)
{
if (hit.transform && hit.transform.tag == "Player")
{
playerInView = true;
}
}
if (playerInView)
{
print ("Detected");
}
}
void OnGUI()
{
if (!playerInView)
{
GUI.Box (new Rect (10, 10, 100, 90), "Loader Menu");
}
...
}