当前位置: 首页 > news >正文

部门门户网站建设请示ie不能显示wordpress图片

部门门户网站建设请示,ie不能显示wordpress图片,九江专业的企业网站建设公司,wordpress中php.iniFSM有限状态机FSM创建控制有限状态机的脚本设置FSM状态机下的各个状态添加测试类FSM的优点FSM 虽然Unity已经有了动画状态机,但是为了代码的开放封闭原则,这时FSM有限状态机的作用就凸显了出来。 创建控制有限状态机的脚本 先创建一个脚本用来控制有限…

FSM有限状态机

  • FSM
    • 创建控制有限状态机的脚本
    • 设置FSM状态机下的各个状态
    • 添加测试类
    • FSM的优点

FSM

虽然Unity已经有了动画状态机,但是为了代码的开放封闭原则,这时FSM有限状态机的作用就凸显了出来。

创建控制有限状态机的脚本

先创建一个脚本用来控制有限状态机(FSM),主要用于切换状态。
首先用一个枚举列举出各个状态

public enum StateType
{ldle,run,jumping,dying,shooting
}

然后我们需要一个容器来保存当前的状态,用字典存储起来方便随后的更改下一状态随后初始化类,将字典创建,并添加两个增加和设置状态的方法,最后再每一帧执行。代码如下

  //当前在运行什么状态private State currentState;public StateType stateType;//各个状态的标识符//写一个保存所有状态的容器private Dictionary<StateType, State> allSaveState;public FSMControl(){allSaveState = new Dictionary<StateType, State>();}public void OnTick()//每一帧执行一次{currentState?.OnUpdate();}public void AddState(StateType stateType, State state){if (allSaveState.ContainsKey(stateType))return;allSaveState.Add(stateType, state);}public void SetState(StateType stateType)//我们需要传一个参数,告诉状态机需要切换到哪一个状态中去{if (currentState == allSaveState[stateType]) return;//判断当前状态是否重复currentState?.OnEnter();//判断当前状态是否为空currentState = allSaveState[stateType];currentState.OnEnter();}

完整代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public enum StateType
{ldle,run,jumping,dying,shooting
}
public class FSMControl
{//当前在运行什么状态private State currentState;public StateType stateType;//各个状态的标识符//写一个保存所有状态的容器private Dictionary<StateType, State> allSaveState;public FSMControl(){allSaveState = new Dictionary<StateType, State>();}public void OnTick()//每一帧执行一次{currentState?.OnUpdate();}public void AddState(StateType stateType, State state){if (allSaveState.ContainsKey(stateType))return;allSaveState.Add(stateType, state);}public void SetState(StateType stateType)//我们需要传一个参数,告诉状态机需要切换到哪一个状态中去{if (currentState == allSaveState[stateType]) return;//判断当前状态是否重复currentState?.OnEnter();//判断当前状态是否为空currentState = allSaveState[stateType];currentState.OnEnter();}}

设置FSM状态机下的各个状态

接下来将展示其中的一个状态,以此类推可以写出其他的状态

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public  class ldle: State
{private Animator animator;private float deltaTime = 5f;private FSMControl fsm;public ldle(Animator animator,FSMControl fsm){this.animator = animator;this.fsm = fsm;}
//刚刚进入状态时的行为public override void OnEnter(){Debug.Log("闲");}
//正在进行状态时的行为public override void OnUpdate(){Debug.Log("站着吧");if (deltaTime >= 0){deltaTime -= Time.deltaTime;if (deltaTime<0){fsm.SetState((StateType.run));//更改状态为跑}}}
//退出状态后的行为public override void OnExit(){Debug.Log("该动起来了");}
}

可以根据自己的条件去更改切换状态的条件,我这里设置的是5秒后改变状态为跑

添加测试类

但我们将前两个脚本写完,就可以添加测试类,也就是增加各个状态以及设置初始状态的操作后就可以正常运行了

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TestFSM : MonoBehaviour
{private FSMControl fsm;private StateType stateType;private Animator animator;private void Awake(){fsm = new FSMControl();animator = GetComponentInChildren<Animator>();fsm.AddState(StateType.ldle, new ldle(animator,this.fsm));fsm.AddState(StateType.run, new run(animator));fsm.SetState(StateType.ldle);}private void Update(){fsm.OnTick();}
}

FSM的优点

当你需要新的状态时可以直接设置脚本继承FSMControl,保证了代码的开放封闭原则,如果使用动画状态机的切换则需要直接更改原来的代码,运用FSM就可以直接创建新的脚本就能实现增加其他状态了

http://www.15wanjia.com/news/165266.html

相关文章:

  • 百度沈阳分公司地址在哪里网络seo软件
  • 武侯区网站建设哪里好点注册公司流程和费用最新
  • 计算机课程网站建设实训报告总结中小企业网络营销
  • 网站改版建设的合同企业营销型网站团队
  • 做网站论文研究方法怎么写wordpress auto get rss
  • 网站介绍模版做微信链接的网站
  • 百度怎么注册公司网站如何运营一个品牌的推广
  • 残疾人招聘网站建设wordpress wp_head()
  • 合肥做网站的企业wordpress多功能插件
  • 怎么编辑网站源代码免费h5源码资源源码站
  • 网站没有问题但是一直做不上首页深圳盐田建设交易中心网站
  • 旅游网站建设标书配置网站开发
  • 安徽省建设厅人员名单官方网站嘉兴免费自助建站模板
  • 温州网站建设方案文档制作网络营销的四个策略
  • 那家做网站比较好轻网站怎么建立
  • 可以做商城网站的公司食品包装设计理念
  • 网站中间内容做多大尺寸的购物网站两化融合建设项目报告
  • 北京市建设工程质量监督网站韩国还有出线的可能
  • python怎么做专门的手机网站广告设计公司业务范围
  • 泉州建站模板搭建邢台论坛网
  • 网站域名icp 备案价格智鼎互联网站建设
  • 为什么打开网站是建设中建设银行租房平台网站6
  • 广东网站建设联系php开发工具哪个好用
  • 卡盟网站建设公司社交型网站开发
  • 万网定制网站怎么样丹阳网站建设要多少钱
  • 如何做菠菜网站代理公司网站开发费用如何入账
  • 培训公司排名windows优化大师值得买吗
  • 设计网站欣赏跨境电商购物网站
  • 网站维护的具体问题中文去掉wordpress
  • 怎么建设大淘客网站网站建设柒金手指花总15