Определить положение последнего объекта в цикле Unity3D - PullRequest
0 голосов
/ 13 мая 2019

Скрипт ниже порождает 20 объектов на оси Y, как я могу получить позицию Y последнего объекта в этом цикле?

Скрипт:

public GameObject[] Bricks;

void SpawnBricks(int numCubes = 20, float startY = 3, float delta = 0.6f, float AngleDis = 3f)
{
    int Rand = Random.Range(0, Bricks.Length);
    for (int i = 0; i < numCubes; ++i)
    {
        var Brick = Instantiate(Bricks[Rand], new Vector3(0, startY - (float)i * delta, 0), Quaternion.identity);
        Brick.transform.parent = gameObject.transform;
    }
}

1 Ответ

0 голосов
/ 13 мая 2019

Вам просто нужно переместить объявление Brick за пределы цикла, чтобы оно оставалось в области действия после выхода из цикла, сохраняя последнее значение, назначенное в цикле:

public GameObject[] Bricks;

void SpawnBricks(int numCubes = 20, float startY = 3, float delta = 0.6f, float AngleDis = 3f)
{
    GameObject Brick;

    int Rand = Random.Range(0, Bricks.Length);
    for (int i = 0; i < numCubes; ++i)
    {
        Brick = Instantiate(Bricks[Rand], new Vector3(0, startY - (float)i * delta, 0), Quaternion.identity);
        Brick.transform.parent = gameObject.transform;
    }

    // Brick now holds the last object returned from Instantiate in the loop
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...