jbs*_*ssm 5 c# unity-game-engine
我正在学习如何使用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);
}
Run Code Online (Sandbox Code Playgroud)
然而,这没有任何作用,我的playerName财产总是空的,我没有收到任何东西name.
我该怎么做呢?我已经看到一个答案在Start()函数中设置一个监听器,然后UnityEvent在这里使用:从输入字段中获取文本
但是有没有其他方法可以使用Unity3d图形编辑器来完成这项工作,而不需要编写如此多的代码?
是的,您可以通过检查员添加事件处理程序.选择InputField游戏对象,然后向下滚动到检查器中InputField部分的底部.单击+添加新的事件处理程序,然后选择要调用的接收游戏对象和方法.
使用函数的动态字符串版本将输入字符串作为参数传递.静态参数回调允许您在检查器中设置函数参数,这可能不是您在响应InputField更改时所需的参数.

通过你的评论,你已经把一切都说清楚了。当您使用动态参数时,输入条目的值将传递给您的函数。当您选择“静态参数”时,检查器中会显示一个新的输入框,供您写入要接收的“静态参数”。
还不确定这有什么用。但应该能清楚地看出区别。