Начнём с создания class и enum. Всё за комментировал в скрипте:
Дальше добавим библиотеку:
Начнём с переменных:
В инспекторе всё будет видно вот так:
У меня будет, например, вот такие скилы:
Функция Update будет иметь вот такой вид:
Что же получается в итоге?
Начнём с того, что босс сможет ударить только тогда, когда придёт время для удара.
Дальше, когда время пришло, рандомно выбирается число от 0 до кол-во скиллов в массиве. В моём случае их 5. Допустим, рандомно выбралось число 3, в моём массиве скилл под индексом 3 - это стан. И в Update'е везде будут использоваться значения 3-го скилла.
Теперь, что касается скрипта целей. У целей должны быть след. функции:
Эти функции могут быть примерно вот такими. В принципе, не важно что они должны делать, просто у цели, которую бьёт босс должен быть скрипт с такими функциями.
У меня выглядят они вот так:
Главный минус такого способа - это то, что, когда босс ударит, например станном, то стан не будет перезаряжаться и босс не сможет им пока бить, а просто после использования стана босс вообще ничем не сможет ударить, пока кул даун не пройдёт.
Но есть и другой способ, он со switch
Функция Update будет выглядеть вот так:
где нумераторы выглядят вот так:
Они различаются только названием и тем, что в каждом нумераторе своя булевая переменная. И да во втором способе можно не использовать enum