C # / Unity Создайте несколько игровых объектов и переместите их позицию.x на +1 - PullRequest
0 голосов
/ 02 декабря 2018

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

То, что я хочу, это иметь линию монет, а не только ту, которая имеет 3в ней появился.

Я попытался получить текущую позицию х текущего объекта, который появился и добавил +1 к его шнуру х, так что следующий объект порождает +1 к шну х.

        private void SpawnCoin()
{
    coinSpawn = Random.Range(1, 5);

    for (int i = 0; i < coinSpawn; i++)
    {
        spawnCoin = Instantiate(coin) as GameObject;
        spawnCoin.transform.SetParent(transform);
        float currentPos = spawnCoin.transform.position.x;
        //spawnCoin.transform.Translate(currentPos+1f, -0.1f, -1f);
    }

}

Я думаю, что должно быть что-то с преобразованием Родителя, которое изменяет его обратно на 0?

Также монеты движутся в x кординате:

    // Use this for initialization
void Start () {
    transform.Translate(0f, -0.1f, -1f);
}

// Update is called once per frame
void Update () {
    transform.Translate(0f - Time.deltaTime * BackgroundScroll.speed, 0f, 0f);
}

Редактировать: Я знаю//spawnCoin.transform.Translate(currentPos+1f, -0.1f, -1f); это меняет текущее преобразование порожденных монет, поэтому я прокомментировал его, но я хочу изменить предстоящие.

1 Ответ

0 голосов
/ 02 декабря 2018

Попробуйте:

private void SpawnCoin()
{
     coinSpawn = Random.Range(1, 5);
     float x = 1.0f;
     for (int i = 0; i < coinSpawn; i++)
     {
         spawnCoin = Instantiate(coin) as GameObject;
         spawnCoin.transform.SetParent(transform);
         float currentPos = spawnCoin.transform.position.x;
         spawnCoin.transform.Translate(currentPos+x, -0.1f, -1f);
         x+=1.0f;
     }

}

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