Comment réparer l’index était hors de portée. Doit être non négatif et inférieur à la taille de la collection.

la programmation


Je l’ai codé pour qu’il affiche une carte, sauf que ce n’est pas le cas,
Le code:

   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

Solution 1

Ceci est juste une supposition à partir du peu de code que vous avez montré ici. Je suppose que votre erreur se produit dans la méthode Start car elle semble être la première chose appelée selon la description de votre problème. Utilisez le débogueur et placez un point d’arrêt sur la ligne indiquée par l’erreur pour voir exactement ce qui se passe.

En haut de votre code, vous avez créé une nouvelle liste (displayCard) pouvant contenir certains objets numériques “carte” (la capacité par défaut). Mais à ce stade, il est vide et ne contient aucune carte.

Dans la méthode Start (et dans Update), vous essayez d’utiliser l’objet card à l’index 0 de displayCard – mais il ne contient aucune carte, donc 0 est hors de portée. Vous devez d’abord mettre une carte (la méthode Ajouter est un moyen) dans la liste.

Encore une fois, ce n’est qu’une supposition car je ne vois aucun code qui ajoute un objet carte à displayCard avant d’essayer d’utiliser l’index 0. S’il existe du code pour ce faire, utilisez le débogueur pour découvrir ce qui se passe. Des outils précieux, ces débogueurs, proviennent de quelqu’un qui a débuté sur un système sans un.

コメント

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