一、SiYangFSM
一个轻量级的可嵌套FSM有限状态机框架:
https://github.com/SYRollingStone/SiYangFSM
二、一个需求
在一个有限状态机中,我希望每个状态机是一个单独的文件class,而不是很多class放在一个文件中。
手动重复创建状态机很恶心。
三、实现思路
代码读取模板文件,然后替换其中的特殊字符,最后保存在项目中一个位置即可。
3.1 先有一个模板文件
所有需要替换的内容都被双括号{{}}标识
using System;
namespace {{Namespace}}
{
/// <summary>
/// {{ClassName}}
/// </summary>
public class {{ClassName}} : StateBase
{
public {{ClassName}}() : base("{{StateName}}")
{
}
public override void OnEnter()
{
// TODO: Enter logic
}
public override void OnExit()
{
// TODO: Exit logic
}
public override void Tick(float deltaTime)
{
// TODO: Update logic
}
public override void FixedTick(float fixedDeltaTime)
{
// TODO: FixedUpdate logic
}
public override void HandleEvent(string eventId, object data = null)
{
// TODO: Event handling
}
}
}

被折叠的 条评论
为什么被折叠?



