前提・実現したいこと
以下のウェブサイトを参考にUnityにてRPGを作成しています。https://gametukurikata.com/unitychanrpg/unitychanrpg2
そこでの疑問を解決したく、投稿させていただきました。
c#でキー入力によりキャラクターを移動させるスクリプトを作りました。
しかし、以下のソースコードではゲームを再生してキー入力をしてもキャラクターが動きませんでした。そこで、このスクリプトにてキャラクターが動かない理由をご教授していただきたく、質問させていただきました。
発生している問題・エラーメッセージ
キー入力にてキャラクターを移動させるスクリプトが正しく機能しない。
キー入力をしてもキャラクターが動かない。
エラーメッセージ なし
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class UnityChanScript : MonoBehaviour 6{ 7 private CharacterController characterController; 8 private Animator animator; 9 //キャラクターの速度 10 private Vector3 velocity; 11 //キャラクターの歩くスピード 12 [SerializeField] 13 private float walkSpeed = 2f; 14 //キャラクターの走るスピード 15 [SerializeField] 16 private float runSpeed = 4f; 17 18 //Start is called... 19 void Start() 20 { 21 characterController = GetComponent<CharacterController>(); 22 animator = GetComponent<Animator>(); 23 } 24 25 //Update is called... 26 void Update() 27 { 28 if (characterController.isGrounded) 29 { 30 velocity = Vector3.zero; 31 32 var input = new Vector3(Input.GetAxis("Horizontal"), 0f, Input.GetAxis("Vertical")); 33 34 if (input.magnitude > 0.1f) 35 { 36 transform.LookAt(transform.position + input.normalized); 37 animator.SetFloat("Speed", input.magnitude); 38 if (input.magnitude > 0.5f) 39 { 40 velocity += transform.forward * runSpeed; 41 } 42 else 43 { 44 velocity += transform.forward * walkSpeed; 45 } 46 } 47 else 48 { 49 animator.SetFloat("Speed", 0f); 50 } 51 velocity.y += Physics.gravity.y * Time.deltaTime; 52 characterController.Move(velocity * Time.deltaTime); 53 } 54 55 } 56} 57
試したこと
vectrocity.y以下2行をUpdate()末尾に切り抜いたところ、キャラクターは正常に動作しました。が、先にあげたソースコードではうまく機能しませんでした。
補足情報(FW/ツールのバージョンなど)
Unityバージョン:2019.4.18f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/16 10:57