团结| C#如何制作自定义数字键盘

时间:2015-10-22 02:06:50

标签: c# events unity3d collider

我要统一制作一个自定义数字键盘。 我想知道如何通过简单的方式使用简短的代码来实现它。 下面的代码只是为了解释我的想法。

var str=""; //This is the result string that i have to send to host

var key0 = document.getElementById('key0').value;
var key1 = document.getElementById('key1').value;
var key2 = document.getElementById('key2').value;
var key3 = document.getElementById('key3').value;
... so on

key0.onclick= function() { //button click events
    str += "0";
}

key1.onclick= function() {
    str += "1";
}

key2.onclick= function() {
    str += "2";
}

key3.onclick= function() {
    str += "2";
}
... so on

function getStr() {
    return str;
}

我知道这段代码是垃圾,但我只是这样思考;事件过程。 但是,如果我将每个按钮设为游戏对象,那么它们都有对撞机吗?并且碰撞者知道他们何时触碰。所以我也这么想。

var array = [key0, key1, key2, key3, ...]; //The list consisted of the gameobjects

foreach (array as arr) {
    arr.collider.onTouched = function() { //Assign the events to each gameobject's collider
        str += arr.getNumber(); // custom function 'getNumber' to attach the number to string
    }
}

我只是在绘制代码。哦,重要的是当我按下回车键时返回结果字符串。所以我在想如何制作get;在C#代码中统一设置函数。我是否在onUpdate函数中管理此工作?

请让我知道处理此过程的最佳方法。谢谢。

1 个答案:

答案 0 :(得分:1)

恕我直言,最好的方法是使用Canvas API和布局管理器自动调整按钮大小。并让所有按钮向同一接收方法触发事件并传递键值。你应该只能使用几行代码就可以逃脱。

我建立在VR上,但方法是相同的:

http://talesfromtherift.com/vr-canvas-keyboard/