This commit is contained in:
2024-10-16 00:03:41 +08:00
commit 897058435c
5033 changed files with 1009728 additions and 0 deletions

View File

@@ -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);
> }
>}
> ```

View File

@@ -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");
> }
>}
>
> ```

View File

@@ -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 | 子状态机名称,默认为空,如果不是子状态机填空即可! |

View File

@@ -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);
> }
>}
> ```

View File

@@ -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
> }
>}
> ```

View File

@@ -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");
> }
>}
>
> ```

View File

@@ -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");
> }
>}
>
> ```

View File

@@ -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");
> }
>}
>
> ```

View File

@@ -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");
> }
>}
> ```

View File

@@ -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);
> }
>}
> ```

View File

@@ -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");
> }
>}
>
> ```

View File

@@ -0,0 +1,35 @@
# FSMController.RuntimeFSMController
### 属性:
public List<*RuntimeFSMController*> RuntimeFSMController;
### 说明:
当前状态机执行的状态配置文件列表
可在下图中配置:
![](textures/RuntimeFSMController.jpg)
### 代码示例:
> ```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);
> }
> }
>}
>
> ```

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,44 @@
# FSMController.SetTrigger
### 方法:
public void SetTrigger(string name);
### 说明:
触发Trigger
### 参数
| 名称 | 说明 |
| ----------- | ----------- |
| name | 参数名称 |
trigger 类型参数:
![](textures/SetTrigger1.jpg)
![](textures/SetTrigger2.jpg)
### 代码示例:
> ```none
>
>public class TestFSMController : MonoBehaviour
>{
> private FSMController controller;
>
> void Start()
> {
> controller = GetComponent<FSMController>();
> // 触发Trigger New Trigger
> controller.SetTrigger("New Trigger");
> }
>}
>
> ```

View File

@@ -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);
> }
>}
> ```

View File

@@ -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("状态机初始化完成!");
> };
> }
>
> }
>}
>
> ```

View File

@@ -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);
> };
> }
>}
>
> ```

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB