繁体   English   中英

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

[英]Unity | C# How to make customized number keypad

我要统一制作一个自定义数字键盘。 我想知道如何通过简短而简洁的代码以简单的方式实现它。 下面的代码仅用于解释我的想法。

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

我只是在绘制代码。 哦,重要的是当我按Enter键时返回结果字符串。 所以我在想如何才能使C#代码中的get; set函数统一起来。 我可以在onUpdate函数中管理此作品吗?

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

恕我直言,最好的方法是将Canvas API与布局管理器配合使用来自动调整按钮的大小。 并让所有按钮将事件触发到相同的接收器方法并传递键值。 您应该只用几行代码就能摆脱困境。

我基于VR建立,但是方法是相同的:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM