質問: new Vector3(Input.GetAxis("Horizontal"), 0f, Input.GetAxis("Vertical")); //方向キーが押されてる if(input.magnitude > 0f && !animator.GetCurrentAnimatorStateInfo(0).IsName("Jump") ) { animator.SetBool("run",true); transform.LookAt(transform.position + input); velocity += input.normalized * 2; } else { animator.SetBool("run",false); } //ジャンプキーを押したらジャンプ if (Input.GetButtonDown("Jump") && !animator.GetCurrentAnimatorStateInfo(0).IsName("Jump")) { animator.SetBool("jump", true); velocity.y += jumpPower; } } velocity.y += Physics.gravity.y * Time.deltaTime; characterController.Move(velocity * Time.deltaTime); } } ### 試したこと Animatorをいじったり、コントローラーを直しましたが効果はなし ### 補足情報(FW/ツールのバージョンなど)
回答: characterControllerは自前で重力の計算をする必要があったはずです。 そのサイトに落下や重力などの処理について併記されてるページがないか確認してみて下さい。 移動し続けるのは接地しないためvelocityのx、zが同じ値をとっているからだと思われます。 記述されているコードを見た感じでは以下の部分で重力を与えているようです。 このあたりに関するページをサイトで探してみてください。 velocity.y += Physics.gravity.y * Time.deltaTime; characterController.Move(velocity * Time.deltaTime);