- 12
- 0
- 约1.54万字
- 约 13页
- 2017-07-09 发布于安徽
- 举报
Unity3D 利用FSM设计相机跟随实现
FSM有限状态机前面已经跟读者介绍过,使用Unity3D引擎实现了动作状态以及技能切换,FSM使用的条件是有限个状态切换,我们可以将FSM应用到相机中,很多人会问在相机中如何使用FSM,不论那种架构其主要目的是将模块之间的耦合性降低,传统的写法就是使用一个相机跟随类,所有的逻辑一股脑的写在一个类或者两个类中,这样一旦逻辑变动,修改起来非常麻烦,可能修改的就不是一个类两个类的事情,而如果我们采用FSM设计相机跟随,这样就容易多了。
接下来就实现FSM有限状态机,FSM作为一个通用类需要将其设置成模版的方式,具体代码如下所示:
[csharp] view plain copy 在CODE上查看代码片派生到我的代码片
using System;
using System.Collections.Generic;
namespace Core
{
public class FSM
{
public class ObjectT, K
where T : ObjectT, K
{
public delegate void Function(T self, float time);
#region Protected members
protected TimeSource timeSource = null;
protected DictionaryK, StateT, K states = new DictionaryK,StateT,K();
protected StateT, K state = null;
protected StateT, K prevState = null;
#endregion
#region Ctors
public Object()
{
timeSource = TimeManager.Instance.MasterSource;
}
public Object(TimeSource source)
{
timeSource = source;
}
#endregion
#region Public properties
public K PrevState
{
get
{
return prevState.key;
}
}
public K State
{
get
{
return state.key;
}
set
{
prevState = state;
if (prevState != null)
prevState.onExit(this as T, timeSource.TotalTime);
StateT, K nextState;
if (states.TryGetValue(value, out nextState))
{
state = nextState;
state.onEnter(this as T,
您可能关注的文档
- 《SPSS统计分析与应用》论文--关于某市对广告偏好的数据分析报告-2.doc
- 《Web技术及应用》课程设计-在线交友系统.doc
- 《移动应用开发》课程设计-基于《个人理财通》的计算器.doc
- 2018年陈文登《数学复习指南》习题详解.doc
- c++课程设计说明书书店管理系统.doc
- EDA课程设计报告-简易14位数字密码锁控制电路.doc
- fpga课程设计-电压测量.doc
- fpga课设-蜂鸣器音乐演奏-西工大-数电实验.doc
- java课程设计报告-万年历.doc
- Java课程设计报告-万年历设计.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)