添加组件
角色控制器组件介绍
【Slope Limite】爬坡角度限制(如图限制爬坡角度为10度,超过10度的斜坡无法前进)
【Step Offset】脚步长度限制
【Skin Width】和胶囊体相关,建议不用调0.001
【Min Move Distance】两个物体间的最小距离,到这个距离后,物体就不在前进
【Center】胶囊体的位置(相对物体对象的位置)
【Radius】胶囊体周长
【Height】胶囊体高度
【胶囊体】角色控制器的碰撞模型,用于【Slope Limite】、【Step Offset】、【Min Move Distance】的计算
角色控制器的脚本调用
控制物体移动:
Move();
不包含重力效果的移动SimpleMove();
包含重力效果的移动,推荐使用
CharacterController组件对象.SimpleMove(方向 * 移动速度 * Time.deltaTime);
cc.SimpleMove(transform.right * speed * Input.GetAxisRaw("Horizontal") * Time.deltaTime);
世界坐标系: Vector3.方向
本地坐标系: transform.方向(只有:up、forward、right,只有正方向,没有负方向)
public class PlayMove : MonoBehaviour
{
private CharacterController cc;
public float speed;
// Start is called before the first frame update
void Start()
{
//获取角色控制器组件对象
cc = GetComponent<CharacterController>();
//初始化速度
speed = 100f;
}
// Update is called once per frame
void Update()
{
//控制物体移动,SimpleMove包含重力效果的移动,前后移动
cc.SimpleMove(transform.forward * speed * Input.GetAxisRaw("Vertical") * Time.deltaTime);
//控制物体移动,SimpleMove包含重力效果的移动,左右移动
cc.SimpleMove(transform.right * speed * Input.GetAxisRaw("Horizontal") * Time.deltaTime);
}
}