Как в Годот сделать Level Script без написания сложного кода?
Например подходим к NPC и включается скрипт:Talk («Привет!»);
Talk («Вот тебе в подарок 1000$, просто так!»);
Money (+1000);
Как сделать так, чтобы в этом скрипте ставилось на паузу пока не закончится следующий диалог?
В юнити я использовал сложный код с text.Split (««), разбивал код на слова, может в годоте можно проще сделать?
- 13 октября 2019, 12:40
- 00
Короче в юнити я делал "парсер" на 2000 строк кода, мне кажется для Годота дожны быть более простые способы, но может я ошибаюсь и придётся тоже делать сложный скрипт.
![io1FvUl](https://i.imgur.com/io1FvUlg.png)
Там скрипт дальше не читался, пока диалог, сцена или игра стоит на паузе, это то что мне и нужно от подобного кода.
Но так не хочется возиться с такими вещами, хотя бы в годоте.
Чет прям сложно. Если нужна просто задержка между двумя строчками кода, в юнити это без проблем делается корутиной.
По идее, похожим методом можно ждать нажатия кнопки (я не пробовал, но должно работать)
Спасибо) интересная идея, надо бы потестить с кнопками, а временной код не подходит)
тут какие то странные настройки функции, я особо в этом не понимаю
IEnumerator
,можно ли вставить это в обычный код типа Awake или Update?
например:
И ещё один вопрос, можно ли вставить вместо строки:
такую строку с переменной, ибо в диалоге может быть много параметров, которые не позволят сразу промотать текст:
На первый вопрос - нет, Awake\Update не могут ничего ждать (они должны выполниться за время одного кадра), но в Awake\Update можно выполнить
а в Dialog объявленной выше уже ждать.
На второй вопрос - да, можно ждать переменных.
Вот краткое описание: https://habr.com/ru/post/216185/
Спасибо! Я до этого корутины боялся использовать, ибо казалось, что с ними можно забыть про запущенную корутину, забыв её просто остановить например, или другие путаницы с такой необычной работой кода.
Где не совсем линейно идёт чтение кода и я начинаю слегка теряться в понимании кода.
Попробую разобраться с этим.
Сам побаиваюсь их использовать, там есть несколько тонких моментов и легко ошибиться и получить странные баги (например если разбить ее на функции то вызывать их надо будет через yield return, но при этом yield break во вложенных функциях работать не будет), но все-таки они красивее чем конечный автомат и если не слишком усложнять логику идеальны.