## 引言:
* 之前一直都很苦恼角色控制器和相机的跟随编写,最新版本中unity官方更新了InputActionAssety和StarterAssets,下面对其进行简单的介绍
*
### 下载示例:
unity资源商店:Starter Assets - Third Person Character Controllerhttps://assetstore.unity.com/packages/essentials/starter-assets-third-person-character-controller-196526* 添加到unity项目中就可以使用,个人认为蛮方便的
* 下载后打开starterassets中的PlayGround
* 打开后会有一个这样的场景:(我把模型替换成雷电将军了)
* 玩家角色物体是PlayerAmature,其中包含着网格和骨骼两个部分
* PlayerMature默认挂载的脚本有:
### Player Input:
* 决定了玩家的输入操作,比如移动,跳跃冲刺灯等操作的按键和操作方式(虚拟摇杆或者键盘)
* 在assets中右键,找到Input Action选项创建一个新的Input Action Asset,双击打开会出现下面的界面
* 点击ActionMap的加号创建新的行为映射,命名为Player,一个行为映射下会有多个行为,这里创建wasd移动为例子
* 点击Actions中的加号创建新的Action,并在右侧ActionProperties进行如下设置:
* 在行为旁边点击加号创建一个新的Composite,会自动生成Up,Down,Left,Right四个方向的行为
* 我们一一对键位进行设置,Up设置为键盘上的w键位
* 四个键位都设置好了之后就可以保存并关闭这个界面,并在刚刚打开的角色上找到PlayerInput组件,将刚刚创建的输入添加为行为映射并运行游戏
* 可以看到角色移动没有问题,当然,原本官方已经配置好了包括鼠标视角跟随,角色跳跃,角色移动等按键的输入,没有必要自己再写一套输入(默认的配置如下图)
### 如何添加角色技能的输入?
* 新建行为并添加一个binding,设置好对应键位和可以在哪个平台上使用就可以了
### 当然仅仅添加键位还是不行的,还要在代码中添加,打开脚本StarterAssetsInputs
* 我刚刚添加了AEQ三个攻击方式,代码添加如下
* 布尔值可以代表着该按键是否被按下,用来后期处理输入和角色技能释放的过程
### 接下来进行按键按下角色状态转换的代码,在角色身上挂载着ThirdPersonController,打开并添加相关的变量
接下来就是动画状态机的处理,下一篇文章继续说吧