Unity3D 角色控制器 Character Controller

添加组件

在这里插入图片描述
在这里插入图片描述


角色控制器组件介绍

【Slope Limite】爬坡角度限制(如图限制爬坡角度为10度,超过10度的斜坡无法前进)

【Step Offset】脚步长度限制

【Skin Width】和胶囊体相关,建议不用调0.001

【Min Move Distance】两个物体间的最小距离,到这个距离后,物体就不在前进

【Center】胶囊体的位置(相对物体对象的位置)

【Radius】胶囊体周长

【Height】胶囊体高度

【胶囊体】角色控制器的碰撞模型,用于【Slope Limite】、【Step Offset】、【Min Move Distance】的计算
在这里插入图片描述


角色控制器的脚本调用

控制物体移动:

  1. Move(); 不包含重力效果的移动
  2. 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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值