前提・実現したいこと
Unityでキャラを歩かせたい
発生している問題・エラーメッセージ
明らかに接地しているがcharactercontroller.isgroundedでfalseが帰ってくる 地面は平面でcharectercontroller.moveで常に下向きに移動させていて、地面の上に止まっている状態
該当のソースコード
C#
1 void Start() 2 { 3 PlayerController = GetComponent<CharacterController>(); 4 PlayerAnimator = GetComponent<Animator>(); 5 Camera = GameObject.Find("Empty/Main Camera"); 6 Empty = GameObject.Find("Empty"); 7 EmptyRatate = Empty.transform.rotation; 8 } 9 10 // Update is called once per frame 11 void Update() 12 { 13 if (PlayerController.isGrounded) 14 { 15 PlayerX = Camera.transform.right * Input.GetAxis("Horizontal"); 16 PlayerZ = new Vector3(Camera.transform.forward.x,0,Camera.transform.forward.z) * Input.GetAxis("Vertical"); 17 PlayerLook = (PlayerX + PlayerZ) * runspeed; 18 PlayerVelocity.y = -5; 19 if (PlayerLook.magnitude > 0) 20 { 21 transform.LookAt(transform.position + PlayerLook); 22 PlayerAnimator.SetBool("AniPlayerRun", true ); 23 } 24 else 25 { 26 PlayerAnimator.SetBool("AniPlayerRun", false); 27 } 28 29 if (Input.GetKeyDown(KeyCode.Space)) 30 { 31 PlayerVelocity.y += 15; 32 } 33 34 } 35 else 36 { 37 PlayerAnimator.SetBool("AniPlayerRun", false); 38 } 39 PlayerVelocity = new Vector3(PlayerLook.x, PlayerVelocity.y, PlayerLook.z); 40 PlayerVelocity.y += Physics.gravity.y * Time.deltaTime; 41 PlayerController.Move(PlayerVelocity * Time.deltaTime ); 42 Empty.transform.rotation = EmptyRatate; 43 } 44}
試したこと
charactercontrollerのコライダーの大きさをいじってみた、解決しなかった。
Unity 2019 4.4f1.personal
Visual Stadio 2019
あなたの回答
tips
プレビュー