簡體   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