Спавн объектов
Добавлено:
02 ноя 2018, 18:09
Grigoriy
Здравствуйте, наверное вы посчитаете это глупым вопросом, но я не могу его решить уже 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);
}
}
}
Re: Спавн объектов
Добавлено:
02 ноя 2018, 18:18
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);
}
}
}
Re: Спавн объектов
Добавлено:
02 ноя 2018, 18:28
Saltant
Зачем циклом делаешь? Можно ведь добавить в метод Update() а не Start() и каждый кадр будет проверяться условие через if() и корутины не нужны.
Re: Спавн объектов
Добавлено:
02 ноя 2018, 20:16
Grigoriy
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);
}
}
}
постоянно что-то дописываю, потом удаляю)
Re: Спавн объектов
Добавлено:
02 ноя 2018, 20:26
Grigoriy
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) и все работает, а со спавном нет
Re: Спавн объектов
Добавлено:
02 ноя 2018, 20:29
DimaJoke
А зачем IEnumerator? Сделай
Используется csharp
void Start()
{
//bla bla bla
Spawn();
}
void Spawn()
{
//Чототам
}
А лучше даже Spawn() вызывать через Update()
Или вообще всё перенести в Update()
Или я не догоняю
Re: Спавн объектов
Добавлено:
02 ноя 2018, 22:23
1max1
при game == false выполняется спавн объектов
Это не возможно, в условии game должен быть тру. Возможно где-то висит лишний скрипт.
Re: Спавн объектов
Добавлено:
02 ноя 2018, 23:30
Saltant
KanycTa писал(а):Saltant писал(а):Зачем циклом делаешь? Можно ведь добавить в метод Update() а не Start() и каждый кадр будет проверяться условие через if() и корутины не нужны.
А разница?
Зачем усложнять технически код когда можно написать не усложняя? Это же юнити, пользуйтесь тем что уже сделано для пользователя, не голый же си-шарп юзаете. Разница на таком этапе будет не видна, но если брать большой проект, тут уже начнутся головные боли от различных корутин, нумераторов, циклов и т.п когда это (то что привел ТС хотя бы) делается через if в update. Не ну, программирование конечно это творчество, каждый пишет кто как видит, остальное приходит с опытом.