Kir*_*dus 0 c# mesh unity-game-engine
我正在 Unity 中编写游戏,但在使用 Text Mesh Pro 输入框中的 On End Edit 事件时遇到问题。我需要在运行时定义事件(在代码中)。我真的不知道如何解决这个问题。
这是编辑器中事件的图片,我希望它连接到 PlayerConnectionManager 类中的 PressedButton 方法:
感谢您的任何帮助!
我假设您需要在运行时调用 PlayerConnectionManager.PressedButton 而不是通过编辑器。如果是这样的话那就很容易了。您只需要使用 addlistener 即可。这是一个片段。
public class TextMeshAdd : MonoBehaviour
{
//input field object
public TMP_InputField tmpInputField;
// Use this for initialization
void Start ()
{
//Add a listener function here
//Note: The function has to be of the type with parameter string
tmpInputField.onEndEdit.AddListener(TextMeshUpdated);
}
public void TextMeshUpdated(string text)
{
Debug.Log("Output string " + text);
}
}
Run Code Online (Sandbox Code Playgroud)
请记住,您提供的函数应该有一个带字符串的参数。即
PlayerConnectionManager.PressedButton应该是上面提到的类似类型TextMeshUpdated(string text)。这将允许它在运行时回调函数。
您必须记住的另一件事是,如果您在其他地方使用输入字段,请确保在添加新侦听器之前删除旧侦听器。您可以使用此
tmpInputField.onEndEdit.RemoveListener(TextMeshUpdated);
方法或
tmpInputField.onEndEdit.RemoveAllListeners();
第一个方法将仅删除特定的函数回调,而RemoveAllListeners 将删除附加到回调的所有事件侦听器。如果您不这样做并尝试分配新的回调,它将尝试调用旧函数,并且可能会引发一些错误。
| 归档时间: |
|
| 查看次数: |
8569 次 |
| 最近记录: |