1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xiongks-ufsm-state-machine

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

UFSM状态机

介绍

Подходит для использования в Unity. Удобный способ добавить контроль состояний в класс MonoBehaviour. Код упрощён и лёгок в использовании.

Простое использование

1. Контрольный класс наследуется от FSMBehaviour

public class CubeController : FSMBehaviour<CubeController>

2. Определение класса состояния

// Скручивающееся состояние
class RotateState : State<CubeController> {
    public override void OnUpdate(CubeController owner) {
        ower.transform.Rotate(Vector3.up * 180 * Time.deltaTime);
        if (Input.GetKeyDown(KeyCode.X)) {
            ower.GetComponent<MeshRenderer>().material.color = Random.ColorHSV();
        }
        // Также можно переписать методы OnEnter и OnExit для добавления логики
    }
}
// Передвигающееся состояние
class MoveState : State<CubeController> {
    public override void OnUpdate(CubeController owner) {
        ower.transform.Translate(Vector3.forward * Time.deltaTime);
    }
}

3. Создание объектов состояния

RotateState rotateState = new RotateState();
MoveState moveState = new MoveState();

4. Добавление состояний и установка условий перехода между ними, а также установка начального состояния для запуска

// Следующие две строки кода добавляют состояния и устанавливают условия перехода для каждого из них
fsm.AddState(rotateState).AddTranstion("ToMove", moveState.GUID);
fsm.AddState(moveState).AddTranstion("ToRotate", rotateState.GUID);
fsm.ChangeState(rotateState.GUID); // Установка начального состояния

Состояние перехода

fsm.SendMessage("ToMove");

DebugMode

fsm.debugMode = true;

Простая демонстрация Demo

./Demo/Demo.unity

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xiongks-ufsm-state-machine.git
git@api.gitlife.ru:oschina-mirror/xiongks-ufsm-state-machine.git
oschina-mirror
xiongks-ufsm-state-machine
xiongks-ufsm-state-machine
master