Создание нескольких сборных конструкций - PullRequest
0 голосов
/ 09 февраля 2019

Я делаю игру с мячом, поэтому мяч проходит через столбцы, и он создается на основе columnPoolSize,

Я хочу создать здесь несколько префабов.Он только создает один prefabs основанный на размере столбца ... Мне нужно создать другой массив для columnPrefab GameObject.Однако я пытался это сделать, но это не увенчалось успехом ...

public class ColumbPool : MonoBehaviour
{
  public int columnPoolSize = 5;

  public GameObject[] columns;
  public GameObject columnPrefab;
  private Vector2 objectPoolPosition = new Vector2(-15f,-25f);
  private float timeSinceLastSpawn;
  public float spawnRate = 4f;
  public float columnMin = -1f;
  public float columnMax = 3.5f;
  private float spawnXPosition = 10f;
  private int currentColumn = 0;

    void Start()
    {
        columns = new GameObject[columnPoolSize];
        for (int i = 0; i < columnPoolSize; i++)
            {
                columns[i] = (GameObject)Instantiate(columnPrefab, objectPoolPosition, Quaternion.identity);
            }
    }

    void Update()
    {
      timeSinceLastSpawn += Time.deltaTime;
      if (GameController.instance.gameOver==false && timeSinceLastSpawn>=spawnRate)
      {
          timeSinceLastSpawn = 0;
          float spawnYPosition = Random.Range(columnMin, columnMax);
          columns[currentColumn].transform.position = new Vector2(spawnXPosition,spawnYPosition);
          currentColumn++;
          if (currentColumn>=columnPoolSize)
          {
              currentColumn = 0;
          }
      }
   }
}

1 Ответ

0 голосов
/ 09 февраля 2019
void Start()
    {
        columns = new GameObject[columnPoolSize];
        for (int i = 0; i < columnPoolSize; i++)
            {
                columns[i] = (GameObject)Instantiate(columnPrefab, objectPoolPosition, Quaternion.identity);
            }
    }

становится

private GameObject[] instantiatedColumns;
public GameObject[] columnPrefabs;
void Start()
    {
        instantiatedColumns= new GameObject[columnPrefabs.Length];
        for (int i = 0; i < columnPrefabs.Length; i++)
            {
                instantiatedColumns[i] = Instantiate(columnPrefabs[i], objectPoolPosition, Quaternion.identity);
            }
    }

Таким образом, вы будете создавать каждый префаб в массиве сборных столбцов (заполненных в инспекторе) и сохранять ссылки в новом массиве "instantiatedColumns", тогда вы можете использовать этот массивв обновлении ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...