创建一个第三人称控制器
大家好...
这里将介绍下使用Playmaker去创建一个简单的第三人称控制器
场景里有些简单的东西...地面...胶囊体...灯光等...
我们想要使用playmaker去控制这个胶囊体
这样我们就可以像控制角色一样去控制这个胶囊运动了
首先，我们要做的就是给它添加一个角色控制器
这样对象就能够带惯性滑行一小段距离（意思不太确定， 不过不加这个组件的话，到后面添加角色控制类功能的时候，就会提示缺少这个组件）
选中胶囊体
在playmaker中右击
然后添加模块组
创建了一个起始模块
我们把它叫做Walk（行走）
播放看看吧...
你会发现，这个模块被激活了
但它现在什么都做不了，我们需要给它添加一些功能
那就让我们给模块添加
看这边的功能面板
这里列出了你可以添加给模块的功能列表
这里我们看下Input（输入）这类
输入类（功能）是处理（鼠标，键盘和控制器的）输入（信息）
Unity使用了输入管理器，根据按键和游戏控制器的轴向确定地图平面 （地图平面应该是对象运动的一个平面，比如人在地上走，这个地就是一个地图平面）
这两个功能Get Axis、Get Axis Vector (Get Axis.获取指定的轴向. Get Axis Vector.获取两个世界轴向，通常用于第三人称相关对象）（此注释仅供参考，嘿嘿~~）
这里我们需要获取两个轴向输入的功能 （我猜的）
因此，我们选用Get Axis Vector功能并添加给模块
你会发现它控制着水平轴向(Horizontal Axis)跟垂直轴向(Vertical Axis)
你可以通过multiplier 来控制速度快慢
地图平面的轴向就是这里的地面
如果你想要一个垂直的世界（平面） 就像一块竖立的墙面一样 （大致如此吧）
那么你就可以尝试下去使用XY轴向的设置
这里，你可以把要当做第三人称控制器的这个对象的运动（方向）跟相机关联起来 （这里如果不选择关联相机，那么角色运动的轴向还是按照原来的世界坐标的轴向来做运动， 会显的很别扭。添加之后，就会按照相机，也就是我们所看到的，一个正常的坐标系统来运动， 讲的很罗嗦，大家自己试试就知道了）
那么你就可以把这个主相机拖到这个参数上面
这里我们获取到了Input（的轴向等信息） 现在我们需要存储一个变量
在变量管理器中，我们创建一个名字为“Movement”的变量
选择Vector3 （vector3.三维向量，我个人理解为方向类，也就是说我们创建的变量， 是一个方向类的，以上纯属个人理解，我不懂编程，所以才选择这款插件， 大家也就看看过算了，有问题请在论坛联系我，谢谢）
然后添加这个变量（创建它）
存储它们输入的，选择变量“Movement”
现在我们想要让变量“Movement”做点什么
这里我们找到角色部分（的功能）
*********
**************
添加给模块
这里使用我们为Iput存储过的变量“Movement”
现在去到处移动下控制器
运行下
我们可以使用WASD去控制胶囊四处移动
这里，我们想要让角色面向运动的方向
因此我们要给它添加另外一个功能
在功能浏览器的搜索框里
我们输入 look
你会看到一些与look相关的功能，Smooth Look At Direction就是我们想要的 （Smooth Look At Direction.平稳旋转游戏对象到指定的方向）
我们选择Walk模块
然后把Smooth Look At Direction功能添加给它
这里，我们找到变量“Movemen”并指定给它
作为人脸的方向
现在，再按下播放看看
可以看到在移动过程中角色能够平稳的转向了
我们同样可以给相机使用Look At功能，让相机面向角色
那我们选择相机
添加模块组
给模块命名“LookAt”
给模块添加Smooth Look At 功能
把胶囊（也就是我们的角色）设置为目标
运行下
可以看到相机平稳的跟踪着角色
现在我们来让相机变的更精妙些（多点变化吧）
我们来个...从黑色逐渐显现的功能
因此，我们添加一个FadeIn（渐显、淡入）模块
搜索Fade（褪色）....找到Camera Fade In（相机淡入）
从黑色淡入...我们让他在3秒内慢慢显现
把它设为起始模块
添加过渡事件，当它结束之后开始“LookAt”模块功能
运行下
你可以看到在3秒内从黑色淡入，然后过渡到相机追踪
追踪角色（四处走动）
现在我们...
这个胶囊，完成了想要的（模块）功能，还差奔跑的功能就用Walk模块来做吧 （大致吧，不确定）
我们可以先拷贝Walk模块
然后复制一个
命名为“Run”
现在看下run模块的参数
把速度提高到4
我们可以把这个模块设为起始模块来测试一下 点运行
看...
移动的更快了
（把Walk模块设为起始模块）现在我们想要设置过渡事件，从Walk模块过渡到Run模块
这里我们自定义一个事件，叫做“Run Button Down”吧
再定义一个”“Run Button Up”事件
从Walk模块（选择添加”Run Button Down”事件）
到Run模块（选择添加“Run Button Up”事件）
现在Run模块已经以返回到Walk模块了
因此...
我们使用...
Get Button Down功能 （当按下按钮的时候发送一个FSM事件）
这里的按键名默认使用“Fire1”，是指鼠标左键跟键盘上左边的Ctrl键
当它被按下的时候，将会发送...
Run Button Down事件
Run模块
添加Get Button Up功能（当松开按钮的时候，发送一个FSM事件）
添加发送事件...
Run Button Up事件 当我们松开按钮的时候（发送这个事件）
现在，让我们来测试下
从walk模块开始（运行）了
使用键盘WASD去控制
现在，按住（鼠标左键或左边Ctrl）就会切换到奔跑（Run模块），开始奔跑了...
松开，又回到了Walk模块
它依靠按钮在Walk模块跟Run模块之间切换
做出每个模块的不懂动作
字幕由19silly制作，如有不足错误之处，请在论坛留言，谢谢观看.