You've already forked taptap2024_GJ_chidouren
76 lines
1.7 KiB
Markdown
76 lines
1.7 KiB
Markdown
# FSMState
|
|
class in XFFSM
|
|
|
|
### 说明:
|
|
|
|
状态基类
|
|
|
|
### 字段
|
|
|
|
| 名称 | 说明 |
|
|
| ----------- | ----------- |
|
|
| controller | 状态控制器 |
|
|
| currentStateInfo | 当前状态信息 |
|
|
| userData | 自定义数据(通过FSMController.StartupFSM()启动状态机传递自定义数据) |
|
|
| lastState | 上一个状态的名称 |
|
|
| nextState | 将要切换的下一个状态的名称(该字段仅在状态将要退出(OnExit)时有值) |
|
|
|
|
### 属性
|
|
|
|
| transform | 状态控制器所在的Transform |
|
|
|
|
### 方法
|
|
|
|
| 名称 | 说明 |
|
|
| ----------- | ----------- |
|
|
| OnCreate| 当第一次进入该状态时调用,该方法仅调用一次(初始化相关操作推荐放该方法中) |
|
|
| OnEnter| 当状态进入时执行 |
|
|
| OnExit| 当状态退出时执行 |
|
|
| OnUpdate| 每帧执行 |
|
|
| OnFixedUpdate| FixedUpdate时执行 |
|
|
| OnLateUpdate| LateUpdate时执行 |
|
|
|
|
### 代码示例
|
|
|
|
|
|
> ```none
|
|
>
|
|
>using UnityEngine;
|
|
>
|
|
>public class TestState1 : FSMState
|
|
>{
|
|
> private Player player;
|
|
> public override void OnEnter()
|
|
> {
|
|
> base.OnEnter();
|
|
> // 可以通过controller访问该游戏物体身上的其他组件,执行逻辑
|
|
> // Transform transform = controller.GetComponent<Transform>();
|
|
> }
|
|
>
|
|
> public override void OnExit()
|
|
> {
|
|
> base.OnExit();
|
|
> }
|
|
>
|
|
> public override void OnUpdate()
|
|
> {
|
|
> base.OnUpdate();
|
|
> if (player == null)
|
|
> player = controller.GetComponent<Player>();
|
|
> player.Rotate();
|
|
> }
|
|
>
|
|
> public override void OnFixedUpdate()
|
|
> {
|
|
> base.OnFixedUpdate();
|
|
> }
|
|
>
|
|
> public override void OnLateUpdate()
|
|
> {
|
|
> base.OnLateUpdate();
|
|
> }
|
|
>
|
|
>}
|
|
> ```
|
|
|