Невозможно вывести все элементы массива gameObject в консоль Unity - PullRequest
0 голосов
/ 26 января 2019

В настоящее время я не могу распечатать все элементы моего массива.Я пытаюсь использовать вложенный цикл for для печати и нумерации всех элементов, но я могу печатать только один элемент снова и снова, который является последним элементом, который я нажимаю в игре.

Первые 7 напечатанных элементов одинаковы, а последний оставлен полностью пустым.

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PickUpItem : MonoBehaviour, IInteractable
{

    public string DisplaySprite;

    public string DisplayImage;

    public int counter;

    public int j;

    public string[] ChoosenItems = new string[7];

    private GameObject InventorySlots;

    public void Interact(DisplayImage currentDisplay)
    {
        ItemPickUp();
    }

    void Start()
    {

    }

    void Update()
    {

    }

    void ItemPickUp()
    {
        InventorySlots = GameObject.Find("Slots");

        counter = 0;

        foreach (Transform slot in InventorySlots.transform)
        {
            if (slot.transform.GetChild(0).GetComponent<Image>().sprite.name == "empty_item")
            {
                slot.transform.GetChild(0).GetComponent<Image>().sprite =
                    Resources.Load<Sprite>("Inventory Items/" + DisplaySprite);
                Destroy(gameObject);
                break;
            }

            if (counter <= 7)
            {
                ChoosenItems[counter] = (gameObject.name);
                counter++;


                if (counter >= 7)
                {
                    Debug.Log("You have choosen 8 itmes, would you like to continue or retry?");

                    for (j = 0; j <= 7; j++)
                    {
                        Debug.LogFormat("Element[{0}] = {1}", j, ChoosenItems[j]);
                    }


                }

            }


        }

    }

}

//http://csharp.net-informations.com/collection/list.html

1 Ответ

0 голосов
/ 26 января 2019

Вы объявляете свой ChoosenItems = new string[7] с 7 элементами, ChoosenItems[0], через ChoosenItems[6].Как видите, это всего лишь 7 предметов.Таким образом, у вас никогда не будет 8 предметов.Попробуйте объявить его как ChoosenItems = new string[8], чтобы он содержал 8 элементов.См. Документы разработчика Mozilla для получения дополнительной информации.

Надеюсь, это поможет!

...