public class L49 : MonoBehaviour
{
CharacterController cc;
Animator ani;
// Start is called before the first frame update
void Start()
{
ani = GetComponent<Animator>();
//角色控制器让角色可以受制于碰撞,但是不会被刚体所牵制
//添加角色控制器后,不用再添加刚体就可以检测碰撞器,触发器和射线
//使用角色控制器时不建议使用动画自带的位移(即不要勾选Animator中的Apply Root Motion)
//相关参数
//Slope Limit 大于该值的斜坡上不去
//Step Offset 单位为米,低于该值的台阶才能上去,该值不能大于角色控制器的高度
//Skin Width 两个碰撞体可以穿透彼此最大的长度
//代码控制
cc= GetComponent<CharacterController>();
if (cc.isGrounded)
{
//是否接触地面
}
//受重力作用的移动
//cc.SimpleMove(Vector3.forward * Time.deltaTime * 10);
//不受重力作用的移动
//cc.Move(Vector3.forward * Time.deltaTime * 10);
}
private void Update()
{
ani.SetInteger("Speed", (int)Input.GetAxisRaw("Vertical"));
cc.SimpleMove(transform.forward * Time.deltaTime * 10* Input.GetAxisRaw("Vertical"));
}
private void OnControllerColliderHit(ControllerColliderHit hit)
{
//特殊生命周期函数检测是否与别的碰撞器碰撞
}
//private void OnCollisionEnter(Collision collision)
//{
// //因为有了专门的检测函数,所以在自己身上的碰撞器函数没用
//}
private void OnTriggerEnter(Collider other)
{
//触发器
}
}