这篇文章主要介绍了Unity学习之FSM有限状态机,通过详细的代码案例来进行解析说明,希望这篇文章对你有所帮助
前言:一个游戏里的一个人物会存在多种状态,那么就需要有一个专门管理这些状态的类。不然会显得杂乱无章,不易于后面状态的增加或者减少。
思路:既然要方便管理,那么首先肯定得有个系统类(专门用来存放所有的状态、状态的增删等功能);然后就是需要把所有的状态都单独写一个类(已达到修改某个状态的时候,其他状态不会受到影响)。
状态管理类:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FSMSystem
{
private Dictionary<StateID, FSMState> states = new Dictionary<StateID, FSMState>();
private StateID currentStateID;
private FSMState currentFSMState;
public void Update(GameObject npc)
{
currentFSMState.Act(npc);
currentFSMState.Reason(npc);
}
/// <summary>
/// 添加状态
/// </summary>
/// <param name="fSMState"></param>
public void AddState(FSMState fSMState)
{
if (fSMState == null) return;
//if (currentFSMState == null)
//{
currentStateID = fSMState.ID;
currentFSMState = fSMState;
/
沃梦达教程
本文标题为:Unity学习之FSM有限状态机
基础教程推荐
猜你喜欢
- ZooKeeper的安装及部署教程 2023-01-22
- unity实现动态排行榜 2023-04-27
- C#控制台实现飞行棋小游戏 2023-04-22
- C# windows语音识别与朗读实例 2023-04-27
- C# 调用WebService的方法 2023-03-09
- C#类和结构详解 2023-05-30
- C# List实现行转列的通用方案 2022-11-02
- 一个读写csv文件的C#类 2022-11-06
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26
- winform把Office转成PDF文件 2023-06-14