Unity 实现 Character控制移动的示例

1. 给角色加角色控制器组件,然后用以下代码可以控制角色移动和跳跃

float  speed  = 6.0f;
float jumpSpeed  = 8.0f;
float gravity  = 20.0f;
 
private Vector3 moveDirection = Vector3.zero;
 
void Start()
{
   // gameObject.rigidbody = false;
}
void Update()
{
    CharacterController controller = GetComponent<CharacterController>();
 
    if(controller.isGrounded)
    {
        moveDirection =new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); //Allows for player input
        moveDirection = transform.TransformDirection(moveDirection); //How to move
        moveDirection *= speed; //How fast to move
 
        if(Input.GetButton("Jump"))
        {
            moveDirection.y = jumpSpeed;
        }
    }
    //Apply gravity
    moveDirection.y -= gravity * Time.deltaTime;
 
    //Move the controller
    controller.Move(moveDirection * Time.deltaTime);   
 
}

2. 添加角色控制器后人物下陷问题

 

未经允许不得转载:第一Unity3D » Unity 实现 Character控制移动的示例

赞 (0)