如果声明会导致你的问题。
你会想:
if(Indicator == 5)
代替。目前你正在分配值而没有检查它,这会导致编译器错误。如果它只是一个错字,然后更新您的答案,否则稍有混淆。
关于检查文本值。您必须抓取文本值,因为您需要参考文本区域。这种方法假定文本区域具有由用户设置的值。目前,您并未抓取任何要比较的文本值,因此if语句不会知道要比较的内容。
这里有一个办法:
public void myfunction5(Canvas Panel)
{
float result;
string textValue = yourTextArea.text;
if(Single.TryParse(textValue, out result))
{
if(result == Indicator)
{
Panel.enabled = false;
}
}
}
您使用的TryParse,以避免如果用户输入的东西,这不是一个数字,就会被抛出任何潜在的异常。此方法将从文本区域获取值,如何让文本区域取决于您,并尝试将文本值解析为浮动值。如果解析成功,该方法将返回true,否则返回false。
下面是对的TryParse东西参考: https://msdn.microsoft.com/en-us/library/26sxas5t(v=vs.110).aspx
如果你想把它解析为int,然后你会使用的Int32的版本的TryParse的,https://msdn.microsoft.com/en-us/library/system.int32_methods(v=vs.110).aspx
我也建议https://docs.unity3d.com/Manual/script-InputField.html
您可以订阅你的方法输入字段论价值Changed事件,你的函数将需要略微调整了,虽然:
01在输入字段文档具有峰值
public void myfunction5(string text)
{
float result;
if(Single.TryParse(text, out result))
{
if(result == Indicator)
{
CachedPanel.enabled = false;
}
}
}
不要忘记存储对要禁用的面板的引用。
希望这是你所追求的。
来源
2017-03-09 23:54:53
JJC
感谢您的答复..我会尝试了这一点 – Deadking66