【问题标题】:Hint/Error message for InputField (Unity)InputField 的提示/错误消息 (Unity)
【发布时间】:2018-10-17 10:43:12
【问题描述】:

使用 Android/Java,您可以使用类似的东西

myEditText.setError("This field cannot be blank");

EditText 中显示输入文本的错误消息/提示:

在 C# 中 Unity 的 InputField 是否有类似的东西,还是您必须自己制作(例如,5 秒后自动消失的文本)?

在 Unity/Windows 游戏中是否有常用的设计/布局来显示类似的消息?

【问题讨论】:

    标签: c# unity3d input-field hint


    【解决方案1】:

    不,但你可以自己做!

    添加一个新的将 GameObject 作为子项添加到您的 InputField 附加到的 GameObject 中。 您可以随意编辑此 GameObject,但只需添加 UnityEngine.UI.Text 就可以了,并确保新的 GameObject 默认未激活。

    现在用你的 InputField 向 GameObject 添加一个脚本,并在其中添加如下内容:

    public void OnStoppedEditing(string text) {
      if (text == "") { 
        errorWindow.SetActive(true); 
        errorText.text = "This field cannot be blank"; 
    
      }
    
    }
    public void Start() {
       //adds a listener that runs OnStoppedEditing when you stop editing myField
       myField.onEndEdit.AddListener(delegate {OnStoppedEditing(myField); }); 
    
       myField = gameObject.getComponent<InputField>();
       errorText = errorWindow.getComponent<Text>();
    }
    public GameObject errorWindow;
    Text errorText; 
    InputField myField;
    

    确保添加“使用 UnityEngine.UI;”到脚本顶部

    保存脚本并将 errorWindow 应用到您创建的子 GameObject!

    请注意,我没有测试此代码(我现在无法访问统一的电脑)所以如果它有任何错误,请询问:)

    【讨论】:

    • 谢谢!何时调用OnStoppedEditing?您是否必须按下“提交”按钮,还是在您输入最后一个字母后等待几秒钟?在按下“保存”按钮之前我不会验证,所以我的代码看起来有点不同(我只使用onClick),另外我还在 InputField 中添加了一个红色大纲并在“保存”时再次禁用它" 如果一切正常,下次按下按钮。
    • OnStoppedEditing 在您单击字段外时被调用。如果您只希望该框出现,您可以使用errorWindow.SetActive(true); errorText.text = "This field cannot be blank";
    • 为了清楚起见,OnStoppedEditing 只是因为myField.onEndEdit.AddListener(delegate {OnStoppedEditing(myField); }); 而被调用
    • 好的,感谢您的澄清。我最终得到的结果是:单击“保存”调用验证方法。如果输入了密码但未输入用户名,则会在 InputField 周围添加一个红色轮廓 (userOutline = InputUser.AddComponent&lt;Outline&gt;(); userOutline.effectColor = Color.red; userOutline.effectDistance = new Vector2(3,-3);),并显示“保存”按钮旁边的文本(启用)。下次单击“保存”再次检查所有内容,如果一切正常,则禁用大纲和文本。
    猜你喜欢
    • 2023-01-09
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 2016-01-22
    • 2016-10-11
    相关资源
    最近更新 更多