[ad_1]
カードを表示するようにコーディングしましたが、カードは表示されません。
コード:
public List<card> displayCard = new List<card>(); public int displayId; public int id; public string cardName; public int cost; public int power; public string cardDescription; public Text nameText; public Text costText; public Text powerText; public Text descriptionText; // Start is called before the first frame update void Start() { displayCard[0] = CardDatabase.cardList[displayId]; } // Update is called once per frame void Update() { id = displayCard[0].id; cardName = displayCard[0].cardName; cost = displayCard[0].cost; power = displayCard[0].power; cardDescription = displayCard[0].cardDescription; nameText.text = " " + cardName; costText.text = " " + cost; powerText.text = " " + power; descriptionText.text = " " + cardDescription; } } I have the cards on a different script What I have tried: Changing the card id etc. Rewriting it incase i forgot something, idk what esle to do
解決策 1
これは、ここで示した小さなコードからの単なる推測です。 問題の説明によると、メソッド Start が最初に呼び出されるように見えるため、エラーがメソッド Start で発生すると思います。 デバッガーを使用して、エラーが示された行にブレークポイントを設定して、何が起こっているかを正確に確認します。
コードの先頭で、いくつかの「カード」オブジェクト (デフォルトの容量) を保持できる新しいリスト (displayCard) を作成しました。 ただし、この時点では空であり、カードは入っていません。
Start メソッド (および Update メソッド) で、displayCard のインデックス 0 にあるカード オブジェクトを使用しようとしましたが、その中にカードがないため、0 は範囲外です。 最初にカードをリストに追加する必要があります (追加方法は一方向です)。
インデックス 0 を使用する前に、displayCard にカード オブジェクトを追加するコードがないため、これも単なる推測です。これを行うコードがある場合は、デバッガを使用して何が起こっているかを調べてください。 貴重なツールであるデバッガーは、それを持たずにシステムを使い始めた人から譲り受けたものです。
[ad_2]
コメント