0

我要统一制作一个自定义数字键盘。我想知道我怎样才能通过简单的方式用很多简短而干净的代码来实现它。下面的代码只是为了解释我的想法。

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;set 函数在 C# 代码中统一。我是否在 onUpdate 函数中管理此工作?

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

4

1 回答 1

1

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

我为 VR 构建,但方法是相同的:

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

于 2015-10-22T02:20:50.093 回答