CharacterController.SimpleMove

传入表示各方向移动速度的 Vector3 类型参数 speed,使物体移动。

其中 Y 轴会被忽略,重力自动应用。

返回角色物体是否在地面上。

定义

public bool SimpleMove(Vector3 speed);
参数名类型必要说明
speedVector3各方向移动速度,单位为 units/s,Y 轴会被忽略。

示例

简单的人物控制器,左右键旋转,前后键移动。

using UnityEngine;

[RequireComponent(typeof(CharacterController))]
public class ExampleScript : MonoBehaviour
{
    public float moveSpeed = 2.0f; // 移动速度
    public float rotateSpeed = 2.0f; // 旋转速度

    private CharacterController _controller;

    private void Start()
    {
        _controller = GetComponent<CharacterController>();
    }

    private void Update()
    {
        // 旋转
        transform.Rotate(0, Input.GetAxis("Horizontal") * rotateSpeed, 0);

        // 前进后退
        var forward = transform.TransformDirection(Vector3.forward);
        var curSpeed = moveSpeed * Input.GetAxis("Vertical");
        _controller.SimpleMove(forward * curSpeed);
    }
}