Cara memperbaiki indeks berada di luar jangkauan. Harus non-negatif dan kurang dari ukuran koleksi.

pemrograman


Saya mengkodekannya sehingga menampilkan kartu, kecuali tidak,
Kode:

   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

Solusi 1

Ini hanyalah tebakan dari sedikit kode yang Anda tunjukkan di sini. Saya berasumsi kesalahan Anda terjadi pada metode Mulai karena tampaknya ini adalah hal pertama yang dipanggil sesuai dengan deskripsi masalah Anda. Gunakan debugger dan tempatkan breakpoint pada baris yang ditunjukkan kesalahan untuk melihat apa yang sebenarnya terjadi.

Di bagian atas kode Anda, Anda telah membuat Daftar baru (displayCard) yang dapat menampung sejumlah objek “kartu” (kapasitas default). Tapi, saat ini kosong dan tidak ada kartu di dalamnya.

Dalam metode Mulai (dan dalam Pembaruan) Anda mencoba menggunakan objek kartu pada indeks 0 dari displayCard – tetapi tidak ada kartu di dalamnya sehingga 0 berada di luar jangkauan. Anda perlu memasukkan kartu (metode Tambah adalah salah satu cara) ke dalam daftar terlebih dahulu.

Sekali lagi ini hanya tebakan karena saya tidak melihat kode yang menambahkan objek card ke displayCard sebelum Anda mencoba menggunakan indeks 0. Jika ada kode untuk melakukan ini, gunakan debugger untuk mencari tahu apa yang terjadi. Alat yang berharga bagi para debugger tersebut, ambillah dari seseorang yang memulai pada suatu sistem tanpa alat tersebut.

コメント

タイトルとURLをコピーしました