[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
هذا مجرد تخمين من الكود الصغير الذي عرضته هنا. أفترض أن خطأك يحدث في طريقة البدء لأنه يبدو أنه أول شيء يتم استدعاؤه وفقًا لوصف مشكلتك. استخدم مصحح الأخطاء وقم بوضع نقطة توقف عند سطر الخطأ المشار إليه لمعرفة ما يحدث بالضبط.
في الجزء العلوي من التعليمات البرمجية الخاصة بك، قمت بإنشاء قائمة جديدة (displayCard) يمكنها الاحتفاظ ببعض كائنات “البطاقة” الرقمية (السعة الافتراضية). لكنها في هذه المرحلة فارغة ولا تحتوي على أي بطاقات.
في طريقة البدء (وفي التحديث)، تحاول استخدام كائن البطاقة الموجود في الفهرس 0 الخاص بـ DisplayCard – ولكن لا توجد بطاقات فيه، لذا فإن 0 خارج النطاق. تحتاج إلى وضع بطاقة (طريقة الإضافة هي إحدى الطرق) في القائمة أولاً.
مرة أخرى، هذا مجرد تخمين لأنني لا أرى أي رمز يضيف كائن بطاقة إلى DisplayCard قبل محاولة استخدام الفهرس 0. إذا كان هناك رمز للقيام بذلك، استخدم مصحح الأخطاء لمعرفة ما يحدث. أدوات قيمة، تلك المصححات، يمكنك الحصول عليها من شخص بدأ في نظام بدونه.
[ad_2]
コメント