作者:吕小布 | 来源:互联网 | 2023-05-17 15:55
我正在学习如何使用Unity3d的教程,我已经走到了尽头.
我相信在较新版本的Unity中发生了一些变化,因为教程看起来像我正在做的那样工作得很好.
我有一个输入字段UI组件,我想在每次更改时调用C#函数.
根据教程,我只需要使用输入字段(脚本)的"On Value Change"属性,并告诉它调用一个以a string
作为参数的函数.
public string playerName;
public void setName (string name)
{
playerName = name;
Debug.Log("Set playerName: "+name, gameObject);
Debug.Log("Get playerName: "+playerName, gameObject);
}
然而,这没有任何作用,我的playerName
财产总是空的,我没有收到任何东西name
.
我该怎么做呢?我已经看到一个答案在Start()
函数中设置一个监听器,然后UnityEvent
在这里使用:从输入字段中获取文本
但是有没有其他方法可以使用Unity3d图形编辑器来完成这项工作,而不需要编写如此多的代码?
1> Huacanacha..:
是的,您可以通过检查员添加事件处理程序.选择InputField游戏对象,然后向下滚动到检查器中InputField部分的底部.单击+添加新的事件处理程序,然后选择要调用的接收游戏对象和方法.
使用函数的动态字符串版本将输入字符串作为参数传递.静态参数回调允许您在检查器中设置函数参数,这可能不是您在响应InputField更改时所需的参数.
谢谢,这就是我在做的事情,但后来我发现我需要使用`Dynamic String`赋值而不是`Static Parameters`来选择我的函数.我仍然不知道为什么,但这使它成功.