init
@@ -0,0 +1,46 @@
|
||||
# FSMController
|
||||
class in XFFSM
|
||||
|
||||
### 说明:
|
||||
|
||||
状态机控制器,可通过此类来修改状态机参数,获取当前状态等!
|
||||
|
||||
### 事件
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| [onInitFinish](FSMController/onInitFinish.md) | 初始化完成的回调 |
|
||||
| [onStateChange](FSMController/onStateChange.md) | 状态改变的回调 参数1:状态机名称 参数2:当前状态 |
|
||||
|
||||
### 属性
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| [RuntimeFSMController](FSMController/RuntimeFSMController.md) | 当前状态机执行的状态配置文件列表 |
|
||||
| Initialized | 状态机是否初始化完成 |
|
||||
|
||||
### 方法
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| [SetBool](FSMController/SetBool.md) | 设置bool类型参数的值 |
|
||||
| [SetFloat](FSMController/SetFloat.md) | 设置float类型参数的值 |
|
||||
| [SetInt](FSMController/SetInt.md) | 设置Int类型参数的值 |
|
||||
| [SetTrigger](FSMController/SetTrigger.md) | 触发Trigger |
|
||||
| [GetBool](FSMController/GetBool.md) | 获取Bool类型参数的值 |
|
||||
| [GetFloat](FSMController/GetFloat.md) | 获取Float类型参数的值 |
|
||||
| [GetInt](FSMController/GetInt.md) | 获取Int类型参数的值 |
|
||||
| [GetTrigger](FSMController/GetTrigger.md) | 获取Trigger类型参数的值 |
|
||||
| [ResetTrigger](FSMController/ResetTrigger.md) | 还原Trigger |
|
||||
| [AddRuntimeFSMController](FSMController/AddRuntimeFSMController.md) | 运行时添加并执行状态配置文件 |
|
||||
| [RemoveRuntimeFSMController](FSMController/RemoveRuntimeFSMController.md) | 运行时移除状态配置文件 |
|
||||
| [GetCurrentStateInfo](FSMController/GetCurrentStateInfo.md) | 获取当前正在执行的状态信息 |
|
||||
| [GetCurrentTransition](FSMController/GetCurrentTransition.md) | 获取当前的状态切换信息 |
|
||||
|
||||
### 静态方法
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| [StartupFSM](FSMController/StartupFSM.md) | 启动状态(适用于没有具体游戏物体的状态管理,例如:游戏状态) |
|
||||
| [GetFSM](FSMController/GetFSM.md) | 查询通过FSMController.StartupFSM启动的状态机 |
|
||||
| [RemoveFSM](FSMController/RemoveFSM.md) | 移除通过FSMController.StartupFSM启动的状态机 |
|
||||
@@ -0,0 +1,40 @@
|
||||
# FSMController.AddRuntimeFSMController
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public void AddRuntimeFSMController(RuntimeFSMController controller);
|
||||
|
||||
### 说明:
|
||||
|
||||
运行时添加并执行状态配置文件
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| controller | 状态配置文件 |
|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>using UnityEngine;
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 加载状态配置文件(这里只是示例,请根据自己的需求使用合适的方式加载)
|
||||
> RuntimeFSMController fsmController = Resources.Load<RuntimeFSMController>("test_state");
|
||||
> // 添加并执行状态配置
|
||||
> controller.AddRuntimeFSMController(fsmController);
|
||||
> }
|
||||
>}
|
||||
> ```
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# FSMController.GetBool
|
||||
|
||||
### 方法:
|
||||
|
||||
public bool GetBool(string name);
|
||||
|
||||
### 说明:
|
||||
|
||||
获取bool类型参数的值
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| name | 参数名称 |
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 获取New Bool参数的值
|
||||
> controller.GetBool("New Bool");
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
@@ -0,0 +1,61 @@
|
||||
# FSMController.GetCurrentStateInfo
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public FSMStateNode GetCurrentStateInfo(int index,string subStateName = "");
|
||||
|
||||
### 说明:
|
||||
|
||||
获取当前正在执行的状态信息
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| index | 状态配置下标 |
|
||||
| subStateName | 子状态机名称,默认为空,如果不是子状态机填空即可! |
|
||||
|
||||
### 返回值
|
||||
|
||||
类型 : **FSMStateNode** [详细信息](/Documentation~/ClassApi/FSMStateNode.md)
|
||||
|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>using UnityEngine;
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 获取下标为0的状态配置当前正在执行的状态的信息
|
||||
> FSMStateNode info = controller.GetCurrentStateInfo(0);
|
||||
> Debug.Log(info.data.name);
|
||||
> }
|
||||
>}
|
||||
> ```
|
||||
|
||||
|
||||
### 重载方法:
|
||||
|
||||
public FSMStateNode GetCurrentStateInfo(string controllerName,string subStateName = "");
|
||||
|
||||
### 说明:
|
||||
|
||||
获取当前正在执行的状态信息
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| controllerName | 状态配置文件名称 |
|
||||
| subStateName | 子状态机名称,默认为空,如果不是子状态机填空即可! |
|
||||
@@ -0,0 +1,44 @@
|
||||
# FSMController.GetCurrentTransition
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public FSMTransition GetCurrentTransition(int index);
|
||||
|
||||
### 说明:
|
||||
|
||||
获取当前的状态切换信息
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| index | 状态配置下标 |
|
||||
|
||||
### 返回值
|
||||
|
||||
类型 : **FSMTransition** [详细信息](/Documentation~/ClassApi/FSMTransition.md)
|
||||
|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>using UnityEngine;
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 获取下表为0的状态配置的状态切换的信息
|
||||
> FSMTransition info = controller.GetCurrentTransition(0);
|
||||
> Debug.LogFormat("开始状态:{0} 目标状态:{1}",info.Data.fromStateName,info.Data.toStateName);
|
||||
> }
|
||||
>}
|
||||
> ```
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# FSMController.GetFSM
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public static FSMController GetFSM(string fsmName);
|
||||
|
||||
### 说明:
|
||||
|
||||
查询通过FSMController.StartupFSM启动的状态机
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| fsmName | 状态机名称 |
|
||||
|
||||
### 返回值
|
||||
|
||||
类型 : **FSMController** [详细信息](/Documentation~/ClassApi/FSMController.md)
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>using UnityEngine;
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> void Start()
|
||||
> {
|
||||
> // 查询GameState
|
||||
> FSMController controller = FSMController.GetFSM("GameState");
|
||||
> // TODO
|
||||
> }
|
||||
>}
|
||||
> ```
|
||||
@@ -0,0 +1,38 @@
|
||||
# FSMController.GetFloat
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public float GetFloat(string name );
|
||||
|
||||
### 说明:
|
||||
|
||||
获取float类型参数的值
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| name | 参数名称 |
|
||||
|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 获取New Float参数的值
|
||||
> controller.GetFloat("New Float");
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
@@ -0,0 +1,37 @@
|
||||
# FSMController.GetInt
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public int GetInt(string name);
|
||||
|
||||
### 说明:
|
||||
|
||||
获取Int类型参数的值
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| name | 参数名称 |
|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 获取New Int参数的值
|
||||
> controller.GetInt("New Int");
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
@@ -0,0 +1,35 @@
|
||||
# FSMController.GetTrigger
|
||||
|
||||
### 方法:
|
||||
|
||||
public bool GetTrigger(string name);
|
||||
|
||||
### 说明:
|
||||
|
||||
获取Trigger类型参数的值
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| name | 参数名称 |
|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 获取Trigger New Trigger 的值
|
||||
> controller.GetTrigger("New Trigger");
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
@@ -0,0 +1,35 @@
|
||||
# FSMController.RemoveFSM
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public static void RemoveFSM(string fsmName);
|
||||
|
||||
### 说明:
|
||||
|
||||
移除通过FSMController.StartupFSM启动的状态机
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| fsmName | 状态机名称 |
|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>using UnityEngine;
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> void Start()
|
||||
> {
|
||||
> // 移除状态机GameState
|
||||
> FSMController.RemoveFSM("GameState");
|
||||
> }
|
||||
>}
|
||||
> ```
|
||||
@@ -0,0 +1,38 @@
|
||||
# FSMController.RemoveRuntimeFSMController
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public void RemoveRuntimeFSMController(int index);
|
||||
|
||||
### 说明:
|
||||
|
||||
运行时移除状态机配置文件
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| index | 配置文件下标 |
|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>using UnityEngine;
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 移除状态配置
|
||||
> controller.RemoveRuntimeFSMController(0);
|
||||
> }
|
||||
>}
|
||||
> ```
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
# FSMController.ResetTrigger
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public void ResetTrigger(string name);
|
||||
|
||||
### 说明:
|
||||
|
||||
还原Trigger
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| name | 参数名称 |
|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 还原Trigger New Trigger
|
||||
> controller.ResetTrigger("New Trigger");
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
@@ -0,0 +1,35 @@
|
||||
# FSMController.RuntimeFSMController
|
||||
|
||||
|
||||
### 属性:
|
||||
|
||||
public List<*RuntimeFSMController*> RuntimeFSMController;
|
||||
|
||||
### 说明:
|
||||
|
||||
当前状态机执行的状态配置文件列表
|
||||
|
||||
可在下图中配置:
|
||||
|
||||

|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> // Start is called before the first frame update
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> foreach (var item in controller.RuntimeFSMController)
|
||||
> {
|
||||
> Debug.LogFormat("状态配置名称:{0}", item.name);
|
||||
> }
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
@@ -0,0 +1,45 @@
|
||||
# FSMController.SetBool
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public void SetBool(string name, bool v);
|
||||
|
||||
### 说明:
|
||||
|
||||
设置bool类型参数的值
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| name | 参数名称 |
|
||||
| v | 值 |
|
||||
|
||||
|
||||
bool 类型参数:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 设置New Bool参数为false
|
||||
> controller.SetBool("New Bool", false);
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
@@ -0,0 +1,45 @@
|
||||
# FSMController.SetFloat
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public void SetFloat(string name, float v);
|
||||
|
||||
### 说明:
|
||||
|
||||
设置float类型参数的值
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| name | 参数名称 |
|
||||
| v | 值 |
|
||||
|
||||
|
||||
float 类型参数:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 设置New Float参数的值为1.0
|
||||
> controller.SetFloat("New Float", 1.0f);
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
@@ -0,0 +1,45 @@
|
||||
# FSMController.SetInt
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public void SetInt(string name, int v);
|
||||
|
||||
### 说明:
|
||||
|
||||
设置Int类型参数的值
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| name | 参数名称 |
|
||||
| v | 值 |
|
||||
|
||||
|
||||
int 类型参数:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 设置New Int参数的值为1
|
||||
> controller.SetInt("New Int", 1);
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
@@ -0,0 +1,44 @@
|
||||
# FSMController.SetTrigger
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public void SetTrigger(string name);
|
||||
|
||||
### 说明:
|
||||
|
||||
触发Trigger
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| name | 参数名称 |
|
||||
|
||||
|
||||
trigger 类型参数:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> void Start()
|
||||
> {
|
||||
> controller = GetComponent<FSMController>();
|
||||
> // 触发Trigger New Trigger
|
||||
> controller.SetTrigger("New Trigger");
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
@@ -0,0 +1,43 @@
|
||||
# FSMController.StartupFSM
|
||||
|
||||
|
||||
|
||||
### 方法:
|
||||
|
||||
public static FSMController StartupFSM(string fsmName,RuntimeFSMController fsm,object userData = null);
|
||||
|
||||
### 说明:
|
||||
|
||||
启动状态(适用于没有具体游戏物体的状态管理,例如:游戏状态)
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| fsmName | 状态机名称 |
|
||||
| fsm | 状态配置文件 |
|
||||
| userData | 自定义参数或数据 |
|
||||
|
||||
### 返回值
|
||||
|
||||
类型 : **FSMController** [详细信息](/Documentation~/ClassApi/FSMController.md)
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>using UnityEngine;
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
> void Start()
|
||||
> {
|
||||
> // 加载状态配置文件(这里只是示例,请根据自己的需求使用合适的方式加载)
|
||||
> RuntimeFSMController gameFSM = Resources.Load<RuntimeFSMController>("game_state");
|
||||
> // 启动状态配置文件
|
||||
> FSMController.StartupFSM("GameState",gameFSM);
|
||||
> }
|
||||
>}
|
||||
> ```
|
||||
@@ -0,0 +1,35 @@
|
||||
# FSMController.onInitFinish
|
||||
|
||||
|
||||
### 事件:
|
||||
|
||||
public Action onInitFinish;
|
||||
|
||||
### 说明:
|
||||
|
||||
当状态机初始化完成的时候会触发该事件
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> private void Start()
|
||||
> {
|
||||
>
|
||||
> if (!controller.Initialized)
|
||||
> {
|
||||
> // 状态机正在初始化中...
|
||||
> controller.onInitFinish += () =>
|
||||
> {
|
||||
> Debug.Log("状态机初始化完成!");
|
||||
> };
|
||||
> }
|
||||
>
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
@@ -0,0 +1,29 @@
|
||||
# FSMController.onStateChange
|
||||
|
||||
|
||||
### 事件:
|
||||
|
||||
public Action onStateChange;
|
||||
|
||||
### 说明:
|
||||
|
||||
状态改变的回调 参数1:状态机名称 参数2:当前状态
|
||||
|
||||
### 代码示例:
|
||||
|
||||
> ```none
|
||||
>
|
||||
>public class TestFSMController : MonoBehaviour
|
||||
>{
|
||||
> private FSMController controller;
|
||||
>
|
||||
> private void Start()
|
||||
> {
|
||||
> controller.onStateChange += (stateMachineName,currentStateName) =>
|
||||
> {
|
||||
> Debug.LogFormat("状态改变 状态配置名称:{0} 当前状态名称:{1}",stateMachineName,currentStateName);
|
||||
> };
|
||||
> }
|
||||
>}
|
||||
>
|
||||
> ```
|
||||
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 10 KiB |
@@ -0,0 +1,75 @@
|
||||
# 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();
|
||||
> }
|
||||
>
|
||||
>}
|
||||
> ```
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# FSMStateNode
|
||||
class in XFFSM
|
||||
|
||||
### 说明:
|
||||
|
||||
状态节点
|
||||
|
||||
### 字段
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| data | 状态数据 |
|
||||
@@ -0,0 +1,20 @@
|
||||
# FSMTransition
|
||||
class in XFFSM
|
||||
|
||||
### 说明:
|
||||
|
||||
状态之间的过渡
|
||||
|
||||
### 字段
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| conditions | 过渡所需的条件 |
|
||||
| condition_groups | 过渡所需的新增组的条件 |
|
||||
|
||||
### 属性
|
||||
|
||||
| 名称 | 说明 |
|
||||
| ----------- | ----------- |
|
||||
| Data | 过渡数据 |
|
||||
| ToState | 过渡目标状态 |
|
||||