Постараюсь объяснить хорошо, без применения своего кода(многим, я уверен, он не понравиться), но в общем. У меня есть 2 скрипта - назовем по ситуации Inventory - 1, Dialogues - 2 -> Inventory хранит в себе соответственно предметы, позволяет перемещаться в меню и т.д, второй скрипт активируется только при использовании какого-либо предмета в инвентаре, важная заметка что использование предмета и какое-либо взаимодействие с диалогом на одну и ту же кнопку, и изменение этого условия нежелательно, в следствие чего в первом скрипте находятся строки :
public Dialogue[] itemsDialogue;
itemsDialogue[pickedItem].Start();
Поэтому оба скрипта работают одновременно из-за чего случается так, что инпут для конца диалога зачитывается как и использование следующего предмета в инвентаре, следовательно получается цикл пока все предметы не закончатся, если не дай бог один из предметов можно использовать бесконечно. Я попробовал поставить курятину и в ней WaitUntil(ждать конца диалога и затем позволять игроку дальше пользоваться инвентарем), но по неизвестной мне причине, скрипт диалогов начинал глючить от этого. Создание флагов и подобного должного влияния не оказало. Буду благодарен за помощь, спасибо за уделенное внимание