文本更改统一时触发事件?
Get an event triggered when text change unity?
这里的文本区域在数字方面不断变化,我想在文本区域获得特定数字时触发一个事件我试过这个 -
public void myfunction45(Canvas Panel)
{
if (Indicator = 45) {
Panel.enabled = false;.
}
} //(indicator- www.progress).
但它不起作用(它不读取它,什么也没有发生)。我如何匹配条件,因为数字是具体的。请举例说明。提前致谢。
Panel
已经是Canvas类型,在同类型上GetComponent<Canvas>
没有任何意义。
尝试使用 Panel.enabled = false;
。
对于其余部分,我们不知道您如何获得 Indicator
引用,或者您如何构建 UI 层次结构,因此我们无法评估问题是否存在。
编辑:我能不能错过单曲 =
让我感到困惑哈哈。我应该避免在我累的时候回答问题。
if 语句会给您带来麻烦。
你会想要:
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 来避免在用户输入非数字内容时引发的任何潜在异常。此方法将从您的文本区域获取值,如何获取文本区域由您决定,并尝试将文本值解析为浮点数。如果解析成功,该方法将 return 为真,否则为假。
这是 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
您可以将您的方法订阅到 Input-fields On Value Changed 事件,不过您的函数需要稍微调整一下:
public void myfunction5(string text)
{
float result;
if(Single.TryParse(text, out result))
{
if(result == Indicator)
{
CachedPanel.enabled = false;
}
}
}
不要忘记存储对要禁用的面板的引用。
希望这就是您所追求的。
这里的文本区域在数字方面不断变化,我想在文本区域获得特定数字时触发一个事件我试过这个 -
public void myfunction45(Canvas Panel)
{
if (Indicator = 45) {
Panel.enabled = false;.
}
} //(indicator- www.progress).
但它不起作用(它不读取它,什么也没有发生)。我如何匹配条件,因为数字是具体的。请举例说明。提前致谢。
Panel
已经是Canvas类型,在同类型上GetComponent<Canvas>
没有任何意义。
尝试使用 Panel.enabled = false;
。
对于其余部分,我们不知道您如何获得 Indicator
引用,或者您如何构建 UI 层次结构,因此我们无法评估问题是否存在。
编辑:我能不能错过单曲 =
让我感到困惑哈哈。我应该避免在我累的时候回答问题。
if 语句会给您带来麻烦。
你会想要:
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 来避免在用户输入非数字内容时引发的任何潜在异常。此方法将从您的文本区域获取值,如何获取文本区域由您决定,并尝试将文本值解析为浮点数。如果解析成功,该方法将 return 为真,否则为假。
这是 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
您可以将您的方法订阅到 Input-fields On Value Changed 事件,不过您的函数需要稍微调整一下:
public void myfunction5(string text)
{
float result;
if(Single.TryParse(text, out result))
{
if(result == Indicator)
{
CachedPanel.enabled = false;
}
}
}
不要忘记存储对要禁用的面板的引用。
希望这就是您所追求的。