Не могу сделать продолжение после рекламы?

Программирование на Юнити.

Не могу сделать продолжение после рекламы?

Сообщение IGameStudio 25 фев 2021, 23:53

Всем привет! Я захотел сделать продолжение после рекламы (это тогда когда ты проиграл, смотришь рекламу и продолжаешь игру)
У меня есть скрипт который отвечает за проигрыш.
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.tag == "bomb")
{
lose = true;
}
}
В нем пишется что если два объекта прикоснутся друг к другу то тогда
lose = true;
И чтобы сделать продолжение после рекламы я создал в том же скрипте метод ButtonContinue;
public void ButtonContinue()
{ if(Advertisement.IsReady()
Advertisement.Show("Rewardedvideo");
lose = false;
}
В нем пишется что если мы нажали на кнопку то тогда lose = false;
И у меня возникают следующие проблемы:
1.У меня есть скрипт SpawnBomb:

void Start()
{
StartCoroutine(Spawn());
}
IEnumerator Spawn()
{
while (!PlayerKille.lose)
{
Instantiate(bomb, new Vector2(Random.Range(-2.4f, 2.4f), 6.0f), Quaternion.identity);
yield return new WaitForSeconds(0.5f);
}
}
который бесконечно спавнит бомбы в нем есть цикл while который заканчивается только тогда, когда lose = true;
Но тогда когда мы нажимаем на кнопку и lose становится false то спавн бомб не продолжается.
2.Еще у меня есть скрип SpawnCoin который спавнит монетки он написан идентично SpawnBomb но если проиграть на 3 секунде то тогда монетки будут спавниться но если проиграть на 10 секунде или больше тогда монетки спавнитися не будут, что самое забавное. :D
3.Еще у меня есть Таймер:
void Update()
{
if (!PlayerKille.lose)
{

if (Timer < 0)Timer = 0;
if (Timer > 0) Timer -= Time.deltaTime;
return;

}
который тоже заканчивается когда lose = true;
Но тогда когда мы нажимаем на кнопку и lose становится false тогда таймер дальше идет.
Помогите пожалуйста! :-s
IGameStudio
UNец
 
Сообщения: 5
Зарегистрирован: 08 фев 2021, 21:12

Re: Не могу сделать продолжение после рекламы?

Сообщение botaforq 23 мар 2021, 21:58

Ну решить легко, у тебя каротина по скрипту включается по функции start(), и если уровень не перезагружен либо тот объект на котором скрипт не пересоздан
каротина никак не запуститься, через то что она запускается только при старте по скрипту, также нужно добавить время в таймере ну уже сам добавишь, пример скрипта для перезапуска оставил.

1 скрипт:

void Start()
{
contGame();
}
IEnumerator Spawn()
{
while (!PlayerKille.lose)
{
Instantiate(bomb, new Vector2(Random.Range(-2.4f, 2.4f), 6.0f), Quaternion.identity);
yield return new WaitForSeconds(0.5f);
}
}

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

2 скрипт:

void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.tag == "bomb")
{
lose = true;
}
}
public void ButtonContinue()
{
if (Advertisement.IsReady()
Advertisement.Show("Rewardedvideo");
lose = false;
contGame();
}
botaforq
UNIт
 
Сообщения: 51
Зарегистрирован: 23 мар 2021, 11:43

Re: Не могу сделать продолжение после рекламы?

Сообщение IGameStudio 26 мар 2021, 16:30

Спасибо большое! :D :D
IGameStudio
UNец
 
Сообщения: 5
Зарегистрирован: 08 фев 2021, 21:12


Вернуться в Скрипты

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

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