Спавн объектов

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Спавн объектов

Сообщение Grigoriy 02 ноя 2018, 18:09

Здравствуйте, наверное вы посчитаете это глупым вопросом, но я не могу его решить уже 2 дня(
Вобщем, у меня есть сам спавн объектов, все работает идеально все спавнится, но мне нужно чтобы все это зависило от условия, что переменная game равняется true
(Character.game == true) и если эта переменная действительно равна true то объекты спавнятся. Я попробовал поставить это условие перед корутиной, но ничего не работает(

Вот сам спавн объектов

using System.Collections;
using UnityEngine;

public class ObstacleSpawner : MonoBehaviour
{
public GameObject cubik;

void Start()
{



StartCoroutine(Spawn());


}
IEnumerator Spawn()
{


while (!Character.lose)
{




Instantiate(cubik, new Vector2(Random.Range(-336.78f, -322.37f), 45f), Quaternion.identity);
yield return new WaitForSeconds(1f);

}




}





}
Grigoriy
UNIт
 
Сообщения: 56
Зарегистрирован: 07 окт 2018, 21:48

Re: Спавн объектов

Сообщение 1max1 02 ноя 2018, 18:18

Почему так много дыр в коде?))
Синтаксис:
Используется csharp
using System.Collections;
using UnityEngine;

public class ObstacleSpawner : MonoBehaviour
{
    public GameObject cubik;

    void Start()
    {
        StartCoroutine(Spawn());
    }

    IEnumerator Spawn()
    {
        while (!Character.lose && Character.game)
        {
            Instantiate(cubik, new Vector2(Random.Range(-336.78f, -322.37f), 45f), Quaternion.identity);
            yield return new WaitForSeconds(1f);
        }
    }
}
 
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Спавн объектов

Сообщение Saltant 02 ноя 2018, 18:28

Зачем циклом делаешь? Можно ведь добавить в метод Update() а не Start() и каждый кадр будет проверяться условие через if() и корутины не нужны.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2235
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Спавн объектов

Сообщение KanycTa 02 ноя 2018, 18:33

Saltant писал(а):Зачем циклом делаешь? Можно ведь добавить в метод Update() а не Start() и каждый кадр будет проверяться условие через if() и корутины не нужны.


А разница?
Аватара пользователя
KanycTa
UNIт
 
Сообщения: 107
Зарегистрирован: 25 июл 2018, 18:41
Откуда: г. Ульяновск
  • Сайт

Re: Спавн объектов

Сообщение Grigoriy 02 ноя 2018, 20:16

1max1 писал(а):Почему так много дыр в коде?))
Синтаксис:
Используется csharp
using System.Collections;
using UnityEngine;

public class ObstacleSpawner : MonoBehaviour
{
    public GameObject cubik;

    void Start()
    {
        StartCoroutine(Spawn());
    }

    IEnumerator Spawn()
    {
        while (!Character.lose && Character.game)
        {
            Instantiate(cubik, new Vector2(Random.Range(-336.78f, -322.37f), 45f), Quaternion.identity);
            yield return new WaitForSeconds(1f);
        }
    }
}
 


постоянно что-то дописываю, потом удаляю)
Grigoriy
UNIт
 
Сообщения: 56
Зарегистрирован: 07 окт 2018, 21:48

Re: Спавн объектов

Сообщение Grigoriy 02 ноя 2018, 20:26

1max1 писал(а):Почему так много дыр в коде?))
Синтаксис:
Используется csharp
using System.Collections;
using UnityEngine;

public class ObstacleSpawner : MonoBehaviour
{
    public GameObject cubik;

    void Start()
    {
        StartCoroutine(Spawn());
    }

    IEnumerator Spawn()
    {
        while (!Character.lose && Character.game)
        {
            Instantiate(cubik, new Vector2(Random.Range(-336.78f, -322.37f), 45f), Quaternion.identity);
            yield return new WaitForSeconds(1f);
        }
    }
}
 

я сделал как вы написали, но все равно не работает, если написать что при game == false выполняется спавн объектов, то все работает, а при true почему то не хочет. Кстати такое же условие я прописал для вывода очков на экран ( при game = true) и все работает, а со спавном нет
Grigoriy
UNIт
 
Сообщения: 56
Зарегистрирован: 07 окт 2018, 21:48

Re: Спавн объектов

Сообщение DimaJoke 02 ноя 2018, 20:29

А зачем IEnumerator? Сделай
Синтаксис:
Используется csharp
void Start()
{
//bla bla bla
Spawn();
}
void Spawn()
{
//Чототам
}
 

А лучше даже Spawn() вызывать через Update()
Или вообще всё перенести в Update()
Или я не догоняю :-?
Что бы повзрослеть, человек должен преодолеть ошибки юности.

Поэтому я снова здесь..
Аватара пользователя
DimaJoke
UNITрон
 
Сообщения: 293
Зарегистрирован: 12 авг 2018, 18:59
Откуда: Ульяновск
  • Сайт

Re: Спавн объектов

Сообщение 1max1 02 ноя 2018, 22:23

при game == false выполняется спавн объектов

Это не возможно, в условии game должен быть тру. Возможно где-то висит лишний скрипт.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Спавн объектов

Сообщение Saltant 02 ноя 2018, 23:30

KanycTa писал(а):
Saltant писал(а):Зачем циклом делаешь? Можно ведь добавить в метод Update() а не Start() и каждый кадр будет проверяться условие через if() и корутины не нужны.


А разница?

Зачем усложнять технически код когда можно написать не усложняя? Это же юнити, пользуйтесь тем что уже сделано для пользователя, не голый же си-шарп юзаете. Разница на таком этапе будет не видна, но если брать большой проект, тут уже начнутся головные боли от различных корутин, нумераторов, циклов и т.п когда это (то что привел ТС хотя бы) делается через if в update. Не ну, программирование конечно это творчество, каждый пишет кто как видит, остальное приходит с опытом.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2235
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 26