【问题标题】:Creating Virtual Keyboard Unity C#创建虚拟键盘 Unity C#
【发布时间】:2015-12-12 21:11:59
【问题描述】:

第一件事:我是新人。所以我正在尝试在 Unity 中构建一个虚拟键盘。我从一个键和一个 InputField 开始。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class KeyboardScript : MonoBehaviour {
InputField iField;

public void onClick() {
string key = "k";
iField.text(key);
}
}

我是这样解释我编写的代码的: 1) 使用 UnityEngine.UI 允许我引用 UI 游戏对象。

2) InputField 是我的输入字段的名称,我让计算机知道它是一个 iField。

3)这段代码是我的按钮的一个组件,称为K,所以onClick()表示当按钮K被点击时。

4) 让称为key的字符串等于字母k。

5) 让InputField里面的文本等于k。

我的错误是“成员 'UnityEngine.UI.InputField.Text' 不能用作方法或委托。

感谢任何建议。我看过 Unity 手册和其他东西,我只需要一个人的帮助,因为我不知道我在看什么。 谢谢。

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    我假设您的虚拟键盘将由代表键的GameObjects 组成?

    在这种情况下,您的每个GameObjects(您的键)都需要有一个Collider,以便鼠标点击注册。

    一旦您在虚拟键盘的每个键上都有一个Collider,您就可以使用Unity 的内置函数OnMouseDown() 注册点击。

    所以你可能有一个GameObject,上面有一个Collider,称为“K”。

    然后,您可以根据单击时调用的 Key GameObject 更改输入字段,例如:

    void OnMouseDown()
    {
        yourInputField.text = gameObject.name;
    }
    

    编辑: 我从来没有真正在 Unity 中使用过 InputField,所以我不知道这样设置文本是否有效,但这可能是在 GameObject 上注册点击的最佳方式。

    【讨论】:

      【解决方案2】:

      您不能以您的方式设置文本。 这个是对的

      // Input field will display only your key
      iField.text = key;
      
      // Input field will display current text + your key
      iField.text += key;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-31
        • 2011-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-03
        • 2015-01-02
        相关资源
        最近更新 更多