Страница 1 из 1

Как продолжить выполнение скрипта после корутины

СообщениеДобавлено: 25 сен 2017, 17:11
DarkDeivel
Всем привет! Не знал как оформить название темы что бы туда все влезло... Во время выполнения определенного войда(к примеру снятие предмета) у меня идет обращение к другому компоненту и там вызывается корутина. Можно ли как-то сделать что бы войд не продолжал выполнять остаток кода пока не выполнится корутина в другом компоненте и не даст определенный сигнал(ответ) в зависимости от которого будет решение продолжать выполнять этот войд или нет...? Ох надеюсь правильно объяснил.


Начало основного войда:
Синтаксис:
Используется csharp

public GameObject otherObject;

public void UnEquipItem(){

otherObject.GetComponent<SomeScript>().UnEquip()
//Если получаем ответ положительный тогда продолжаем выполнение войда
//someCode1
//someCode2
...
}
 


Другой компонент:

Синтаксис:
Используется csharp
public void UnEquip(){
StartCoroutine(testCoroutine());
}

IEnumerator testCoroutine(){
someCode...
}
 


Я так понимаю есть всякие типа return и прочие приблуды которые могут мне в этом помочь, но точно не разбираюсь, спасибо!

Re: Как продолжить выполнение скрипта после корутины

СообщениеДобавлено: 25 сен 2017, 17:59
NOVA
Я bool переменной делал. В корутине присваивал значение true и проверял в апдейте. Коряво выглядит, нормально работает.

Re: Как продолжить выполнение скрипта после корутины

СообщениеДобавлено: 25 сен 2017, 21:08
samana
Ещё можно попробовать просто разбить на методы.
(1) метод основного скрипта, который запустит в конце корутину другого скрипта.
(2) метод основного скрипта, в котором будет то, что у вас должно произойти после корутины другого скрипта.

Работает как-то так:
Основной метод (1) что-то проверяет и обращаясь к другому компоненту запускает в нём корутину и основной метод завершается. В эту корутину можно передать ссылку на основной компонент, чтобы по завершению корутины, в зависимости от ваших условий, теперь она сама могла бы запустить метод (2) из основного класса.

Re: Как продолжить выполнение скрипта после корутины

СообщениеДобавлено: 26 сен 2017, 07:34
DarkDeivel
samana писал(а):Ещё можно попробовать просто разбить на методы.
(1) метод основного скрипта, который запустит в конце корутину другого скрипта.
(2) метод основного скрипта, в котором будет то, что у вас должно произойти после корутины другого скрипта.

Работает как-то так:
Основной метод (1) что-то проверяет и обращаясь к другому компоненту запускает в нём корутину и основной метод завершается. В эту корутину можно передать ссылку на основной компонент, чтобы по завершению корутины, в зависимости от ваших условий, теперь она сама могла бы запустить метод (2) из основного класса.


Спасибо всем! Такой вариант вполне может подойти.