Unity | c#如何制作自定义数字键盘

本文关键字:自定义 数字 键盘 何制作 Unity | 更新日期: 2023-09-27 18:18:41

我将在unity中创建一个自定义数字键盘。我想知道我怎么能让它通过简单的方式与多短而干净的代码。下面的代码只是为了解释我的想法。

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
    }
}

我只是在画代码。重要的是当我按回车键时返回结果字符串。所以我在想如何在c#代码中使用统一的get;set函数。我是否在onUpdate功能中管理此工作?

请让我知道处理这个过程的最好办法是什么。谢谢你。

Unity | c#如何制作自定义数字键盘

我认为最好的方法是使用带有布局管理器的Canvas API来自动调整按钮的大小。并让所有按钮向相同的接收器方法触发一个事件并传递键值。你只需要写几行代码就可以了。

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

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