今天实现的内容:
加入降落动画
降落发生在跳跃之后,所以降落动画要紧接着跳跃动画播放,动画机如下。
这两条Transition都has exit time,并且jump到fall的优先级高于jump到ground,因为目前为止这两个转换都没有条件。
在图示位置调整优先级。
落地检测的实现及相关动画运用
要实现落地检测,需要使用Physics.Overlap里的东西,使用Physics.Overlap可以找到某个形状范围内有重合的所有碰撞体。比如我们要用到的Physics.OverlapCapsule就是在一个给定的胶囊体内得到所有与胶囊体有重合的特定layer的碰撞体,Overlap只能得到有哪些碰撞体重合,而不知道其它信息(先后,远近等等)。
我们新建落地检测器脚本OnGroundSensor,挂载到PlayerController游戏对象的子物体sensor下,sensor对象将专门由于各种检测器的挂载。
OnGroundSensor代码如下。通过SendMessage来告诉PlayerController当前是否正在地面。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 落地检测器
public class OnGroundSensor : MonoBehaviour
{
// 用于引用PlayerController游戏对象上的CapsuleCollider
public CapsuleCollider capCol