私はリストに関連する問題に頭を悩ませてきました。私は初心者ですので、少しわかりにくい場合は申し訳ありません。
私の目標は、UnityのUI要素に表示されるキーボード入力から数字を書き込めるようにすることです。
そのために、ディスプレイにコントロールを追加したかったので、リストを使用することにしました(たとえば、「3.489.498」のように読みやすくするために、3桁ごとに「。」を追加します)。 。
したがって、基本的には、このリストに新しい入力を格納し、入力として新しい数字があるたびに、display.textを使用してこのリストを表示します。
これは実際には非常にうまく機能しますが、最後に入力した要素を削除できるようにしたかったのです。そこで、List.Remove()を使用してバックスペースホットキーを追加しました。
そして、これが悪夢の始まりです。「1」を押してすぐに削除すると動作するようですが、何らかの理由で2では動作しません。
エラーメッセージは次のとおりです:「引数が範囲外です、パラメータ名:インデックス」。
私はこの問題に頭を悩ませることはできません:(
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
public class BoxCreateNumber : MonoBehaviour {
public Text textDisplayNumber;
public List<int> numberList = new List<int>();
void Start () {
}
void Update () {
CollectingNumberInput ();
}
void CollectingNumberInput(){
if (Input.GetKeyDown(KeyCode.Keypad1)){
numberList.Add (1);
//numberList.Insert (numberList.Count,1);
DisplayNumber ();
} else if (Input.GetKeyDown(KeyCode.Keypad2)) {
numberList.Add (2);
//numberList.Insert (numberList.Count,2);
DisplayNumber ();
} else if (Input.GetKeyDown(KeyCode.Backspace)) {
numberList.Remove(numberList.Count);
DisplayNumber ();
}
}
void DisplayNumber(){
textDisplayNumber.text = "";
for (int i = 0; i <= numberList.Count; i++) {
textDisplayNumber.text += numberList [i];
}
}
}
これを試して、最後の要素を削除してください
numberList.RemoveAt(numberList.Count-1);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加