C # / Unity добавить экземпляр игрового объекта в массив - PullRequest
0 голосов
/ 17 марта 2019

В настоящее время у меня есть скрипт, который может размещать префабы на моей местности. Это мой код для этого:

RaycastHit hit;

for (int i = 0; i < spawnerData.spawnableObjects.Length; i++)
{
    if (spawnerData.spawnableObjects[i].currentObjects != spawnerData.spawnableObjects[i].numberOfObjects)
    {
        if (Physics.Raycast(new Vector3(randomX, r.bounds.max.y + 5f, randomZ), -Vector3.up, out hit))
        {
            randomX = Random.Range(r.bounds.min.x, r.bounds.max.x);
            randomZ = Random.Range(r.bounds.min.z, r.bounds.max.z);

            if (hit.point.y >= spawnerData.spawnableObjects[i].spawnerStartHeight && hit.point.y <= spawnerData.spawnableObjects[i].spawnerEndHeight)
            {
                spawnedObject = Instantiate(spawnerData.spawnableObjects[i].spawnablePrefab, hit.point, Quaternion.identity);
                objectsSpawned[spawnerData.spawnableObjects[i].currentObjects] = spawnedObject;
                spawnerData.spawnableObjects[i].currentObjects += 1;                        
                Debug.Log(objectsSpawned.Length);
            }
        }
    }
}

SpawnerData поступает из другого класса:

[CreateAssetMenu]
public class SurfaceSpawnerData : ScriptableObject
{
    public SpawnableObjects[] spawnableObjects;

    [System.Serializable]
    public class SpawnableObjects
    {
        public GameObject spawnablePrefab;
        public float spawnerStartHeight = 2f;
        public float spawnerEndHeight;
        public int currentObjects;
        public int numberOfObjects;
    }
}

В настоящее время все нормально, если я уберу строку:

objectsSpawned[spawnerData.spawnableObjects[i].currentObjects] = spawnedObject;

Однако, с этой строкой в ​​коде, она будет порождать бесконечное количество объектов, которые не добавляются в массив.

Любая помощь приветствуется.

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