Unity 火炬之光 笔记(二)状态机的基本设计

2023-11-10 14:59

本文主要是介绍Unity 火炬之光 笔记(二)状态机的基本设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里状态机有两个部分组成,一个是管理各种状态的状态机,一个是各种状态本身。

状态机对外有两个接口,一个是添加状态,一个是切换状态。我们给一个对象用状态机管理,首先就给它的状态机添加各种状态,然后启动状态机就OK了,里面不同的状态都会在各种时候自己切换到别的状态。

 

状态本身主要有四个功能,首先保存自己收哪个状态机控制的引用,然后进入状态(用方法做)、退出状态(用方法做)、运行状态(用携程做)这三个过程对应的函数。运行状态里面会对不同情况作出处理,转换到其他的状态。

 

状态机是一种十分优秀的设计,适用范围十分广泛。能使思维变得十分清晰,代码结构也很规范简单。 

我一开始学状态机,感觉这个玩意儿使用范围很小。也就适用于处理一下怪物的AI。

但是今天的学习让我打开了新世界的大门,状态机使用范围是十分广泛的。

它可以处理玩家操控的人物的状态,它可以处理UI之间的管理。对于复杂的逻辑,像战斗系统,我也可以用状态机来处理。

比如我有这样的一个战斗流程。首先,玩家和怪物都准备好。然后每隔一秒,玩家和怪物轮流攻击。直到一方的血量为0。如果是怪物血量为0,那么人物会获得奖励,然后刷新怪物,继续战斗。如果是玩家血量为0,那么玩家就会进入5秒虚弱状态,虚弱状态结束后,玩家才会恢复血量,然后刷新怪物,继续开始战斗。

对于以上这个战斗流程,我们可以抽象成几个状态,每种状态中都有自己的逻辑来转移到其他的状态。一旦我将状态机开启,那么我人物就会按照这么一个流程战斗下去。当我有新的需求的时候,我只需要在不同的状态中修改代码。或者我新加入一些别的状态就好。

就这样,状态机就是如此好用。

  

这篇关于Unity 火炬之光 笔记(二)状态机的基本设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/383428

相关文章

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机