首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Unity InputField框始终处于焦点位置

Unity InputField框始终处于焦点位置
EN

Stack Overflow用户
提问于 2021-04-23 13:55:43
回答 1查看 693关注 0票数 0

我正在尝试创建一个简单的数学游戏,玩家输入一个数学问题的答案。基本上,用户所能做的就是输入答案,然后输入。

目前,我有它的用户可以进入输入栏,当他们进入后,当下一个问题出现时,他们必须再次物理点击输入栏框来输入答案。

有没有一种方法可以让你连续地输入输入字段,而不需要重新单击输入字段?

在下面编辑:

我输入了下面的代码。如果我得到的错误不能隐式地将类型inputfield转换为gameobject,我该如何获取inputfield?

代码语言:javascript
运行
复制
GameObject inputField;
void Start()
{
    GameObject inputField = gameObject.GetComponent<InputField>();
    inputField.Select();
    inputField.ActivateInputField();

EN

回答 1

Stack Overflow用户

发布于 2021-04-23 14:17:15

在加载了一个新的“问题”之后,你可以通过调用ActivateInputField来自动聚焦InputField。不确定,但也许你也需要先Select

代码语言:javascript
运行
复制
// Not sure if this is needed
theInputField.Select();

theInputField.ActivateInputField();

或者,您也可以监听提交并执行以下操作:

代码语言:javascript
运行
复制
private void Start ()
{
    // Make your InputField accept multiple lines
    // See https://docs.unity3d.com/2018.3/Documentation/ScriptReference/UI.InputField.LineType.MultiLineNewline.html
    theInputField.lineType = InputField.LineType.MultiLineNewline;
    // Instead of waiting for submissions use the return key
    theInputField.onValidateInput += MyValidate;
}

private char MyValidate(string currentText, int currentIndex, char addedCharToValidate)
{
    // Checks if a new line is entered
    if (addedCharToValidate == '\n')
    {
        // if so treat it as submission
        // -> clear the input and evaluate
        EvaluateInput(theInputField.text.Trim('\0'));
        theInputField.text = "";
        return '\0';
    }
    return addedCharToValidate;
} 

因此,实际上用户根本不会离开InputField

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67224653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档