私は 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;
}