1

私は 2D プラットフォーマーを作成しており、チュートリアルに従ってキャラクターを作成しました。このキャラクターは、ジャンプするときに空中で方向を変えることができないことを除けば、うまく機能します。これに追加して、キャラクターがジャンプ中に方向を変えられるようにするにはどうすればよいですか?

基本的な動きに使用されるコードは次のとおりです。

void Update()
{

    CharacterController controller = GetComponent<CharacterController>();
    float rotation = Input.GetAxis("Horizontal");
    if(controller.isGrounded)
    {
        moveDirection.Set(rotation, 0, 0);
        moveDirection = transform.TransformDirection(moveDirection);

        //running code
        if(Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) //check if shift is held
        { running = true; }
        else
        { running = false; }

        moveDirection *= running ? runningSpeed : walkingSpeed; //set speed

        //jump code
        if(Input.GetButtonDown("Jump"))
        {
            jump();
        }
    }

    moveDirection.y -= gravity * Time.deltaTime;

    controller.Move(moveDirection * Time.deltaTime);


}

編集: jump() のコードを含めるのを忘れました。これはおそらく重要なことです...

 void jump()
{
    moveDirection.y=jumpHeight;
    transform.parent=null;
}
4

1 に答える 1