创建虚拟键盘Unity C#

时间:2015-12-12 07:50:16

标签: c# unity3d

第一件事:我是新人。所以我试图在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 GameObjects。

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

3)此代码是我的按钮的一个组件,名为K,因此onClick()表示单击按钮K时。

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

5)让InputField中的文本等于k。

我的错误说"成员' UnityEngine.UI.InputField.Text'不能用作方法或代表。

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

2 个答案:

答案 0 :(得分:0)

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

在这种情况下,您的每个GameObjects(您的密钥)都需要Collider,以便鼠标点击进行注册。

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

因此,您可能会在GameObject上加Collider,其名称为" K"。

然后,您可以根据点击它时调用键GameObject的内容来更改输入字段,例如:

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

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

答案 1 :(得分:0)

您无法以您的方式设置文字。 这个是正确的

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

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