ジャンプしたキャラクターが着地しない
Unityもこのサイトも全くの初心者です。
よろしくお願いいたします。
個人サイトのコードを参考に組んでみたのですが、
普通の走る移動、ジャンプはできても、
一度ジャンプすると浮いたまま、着地しません。
Character Controllerを使っています。
普段は浮いていないし、走っている途中に浮くこともないです。
ジャンプすると着地せず、固まったまま勝手に平行移動してしまいます。
どこを直せばいいのでしょうか?
ご教授お願いいたします。
コード以外の問題かもしれませんが、以下コードを貼り付けておきます。
発生している問題・エラーメッセージ
エラーメッセージはなし
該当のソースコード
C♯です(冒頭省略)
public class CharacterMove : MonoBehaviour
{
private Animator animator;
private CharacterController characterController;
private Vector3 velocity;
[SerializeField]
private float walkspeed;
[SerializeField]
private float jumpPower = 5f;
// Start is called before the first frame update void Start() { animator = GetComponent<Animator>(); characterController = GetComponent<CharacterController>(); velocity = Vector3.zero; } // Update is called once per frame void Update() { if (characterController.isGrounded) { velocity = Vector3.zero; var input = 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/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/14 17:34
退会済みユーザー
2019/08/14 19:07
2019/08/19 15:36