Unity3D架构系列之-FSM有限状态机设计(一)

  我们在游戏开发中经常面临架构设计问题,在蛮牛问答里面也有好多朋友问关于架构方面的问题,在这里我就将一些经常使用的游戏开发方面的知识跟大家介绍 一下, 一是给大家提供一个设计思路,在此基础上可以举一反三,二是大家可以通过这个平台共同学习。闲话不多说了,切入正题,FSM有限状态机,在游戏开发中如何使用?那些模块的设计需要它?接下来我们就分析一下游戏:

    比如我们的玩家自身的状态切换,Idle,walk,attack等等,这些都属于状态的切换,可以用有限状态机;还有比如玩家去完任务:领取任务,杀怪,交易,交接任务;还有界面逻辑比如登录,进入场景,退出等等,在游戏中状态切换还是很多的,以上我说的都可以使用有限状态机。既然这么多地方可以使用,那么我们如何去设计有限状态机?

    下面我们先设计我们的FSM有限状态机类图,如下所示:

         wKiom1THrgnDFZcsAAOShIcUaH0197.jpg

    在这里我的优先状态机,共五个类文件组成。下面就给大家一一说明:

    第一个是IState类,这个类是抽象的,主要是实现有限状态机的接口,书写如下:

    

1
2
3
4
5
6
7
8
using UnityEngine;
using System.Collections;
 
public interface IState {
    void OnEnter(string prevState);
    void OnExit(string nextState);
    void OnUpdate();
}

   这个抽象类一共只有三个接口,一个是进入状态,停止状态,更新状态。

   第二个类我会在系列二中给大家介绍。

   时间有点晚了,就先到这里吧。

   转自:http://jxwgame.blog.51cto.com/943299/1608980


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值