Слияние кода завершено, страница обновится автоматически
Подходит для использования в Unity. Удобный способ добавить контроль состояний в класс MonoBehaviour. Код упрощён и лёгок в использовании.
public class CubeController : FSMBehaviour<CubeController>
// Скручивающееся состояние
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);
}
}
RotateState rotateState = new RotateState();
MoveState moveState = new MoveState();
// Следующие две строки кода добавляют состояния и устанавливают условия перехода для каждого из них
fsm.AddState(rotateState).AddTranstion("ToMove", moveState.GUID);
fsm.AddState(moveState).AddTranstion("ToRotate", rotateState.GUID);
fsm.ChangeState(rotateState.GUID); // Установка начального состояния
fsm.SendMessage("ToMove");
fsm.debugMode = true;
./Demo/Demo.unity
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )