【问题标题】:Unity/C# Prevent multiple entries per letter in a list (from Input Fields)Unity/C#防止列表中每个字母多个条目(来自输入字段)
【发布时间】:2018-10-16 08:38:57
【问题描述】:

在花了几个小时挠头尝试从输入字段列表中提取文本之后,我想通了,却发现它以单词进度的形式在每个字段中添加了多个单独的条目。

图片清晰:

我希望它只在用户完成输入时注册一个条目。这是我在代码方面的内容:

public void getText() {
    for (int i = 0; i < inputList.Count; i++)
    {
        string input = inputList[i].text;
        textList.Add(input);
    }
}

【问题讨论】:

  • 有必要吗?可以用Enter键触发Player done typing事件吗?
  • @Morasiu 不幸的是,用户无需按 Enter 键,因为您可以通过单击离开该字段来退出该字段。我可能会用它来触发一个事件......但唉,我实际上不知道该怎么做。随意提供一个例子。
  • Soo...你怎么知道用户是否完成了输入?

标签: c# list unity3d input-field


【解决方案1】:

Inputfield 有一个名为“onEndEdit”的事件,当用户完成该字段时触发,它在 Enter 时触发,并在通过单击外部退出该字段时触发。这是一个例子

using UnityEngine.UI;
using UnityEngine;
[RequireComponent(typeof(InputField))]
public class InputFieldListener : MonoBehaviour
{

    void Start()
    {
    GetComponent<InputField>().onEndEdit.AddListener(OnEndEdit);

    }
    void OnEndEdit(string s)
    {
        Debug.Log("user entered: "+s);
    }
}

【讨论】:

  • 不幸的是,脚本没有附加到 InputField,而且还有不止一个。实际上,我收到一条错误消息,提示“对象引用未设置为对象的实例。但是,我的该脚本的所有插槽都已填满。
  • 我终于想出了如何实现这段代码。这是编辑过的作品: public List numbers;公共列表 项目; for (int i = 0; i
猜你喜欢
  • 2019-01-28
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多