提示コードのコメント部内部のコードですがvoid OnCollisionEnter();関数でrb.velocity,moveSpeed を0にしているのになぜゼロじゃない値が来るのでしょうか?
参考サイト: https://docs.unity3d.com/ja/2018.4/ScriptReference/Rigidbody-velocity.html
cs
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class MoveControl : MonoBehaviour 6{ 7 8 // ############################## コンポーネント ############################## 9 private Rigidbody rb; //Rigidbody 10 private Animator anim; //Animator 11 12 // ############################## 移動 ############################## 13 public Vector3 movePosition; //移動座標 14 private Vector3 movePrevPosition; //前の移動座標 15 public Vector3 moveVector; //移動方向 16 public float moveSpeed; //移動速度 17 18 // ############################## GameObject ############################## 19 20 //武器 21 public GameObject weapon; //ゲームオブジェクト 22 private Weapon weaponScript; //スクリプト 23 24 // ############################## 判定 ############################## 25 private bool isAttack; 26 public bool isMove; 27 28 void Start() 29 { 30 anim = GetComponent<Animator>(); //Animator 31 rb = GetComponent<Rigidbody>(); //Rigidbody 32 33 movePosition = new Vector3(0,0,0); //移動座標 34 moveVector = new Vector3(0,0,0); //移動方向 35 moveSpeed = 0; //移動速度 36 37 weaponScript = weapon.GetComponent<Weapon>(); //武器 38 39 40 isAttack = false; 41 isMove = false; 42 } 43///////////////////////////////////////////////////////////////////////////////// 44 void FixedUpdate() 45 { 46 rb.velocity = moveVector.normalized * moveSpeed; 47 } 48 49//////////////////////////////////////////////////////////////////////////////// 50 private void Attack() 51 { 52 53 } 54 55 56 private void Motion() 57 { 58 anim.SetFloat("move", (float)rb.velocity.magnitude); 59 } 60 61 62 63 private void Move() 64 { 65 if(isMove == true) 66 { 67 //移動方向 取得 68 moveVector = movePosition - transform.position; 69 moveVector.y = 0; 70 71 72 moveSpeed = 10; 73 //向きを変える 74 Quaternion look = Quaternion.LookRotation(moveVector, Vector3.up); 75 transform.localRotation = look; 76 77 isMove = false; 78 79 } 80 81 82 } 83 84 85 86 void Update() 87 { 88 Debug.Log(rb.velocity.magnitude); 89 90 91 Motion(); //モーション 92 Attack(); //攻撃 93 Move(); //移動 94 } 95 96 97 98 99 100 101//////////////////////////////////////////////////////////////////////////// 102 private void OnCollisionEnter(Collision collision) 103 { 104 if(collision.gameObject.layer == 1 >> 0) 105 { 106 moveSpeed = 0; 107 rb.velocity = new Vector3(0,0,0); 108 } 109 } 110//////////////////////////////////////////////////////////////////////////// 111 private void OnCollisionExit(Collision collision) 112 { 113 114 } 115 116 117 118 119 //イベント処理 120 121 public void AttackStart() 122 { 123 Debug.Log("Attack Start "); 124 } 125 126 public void AttackEnd() 127 { 128 Debug.Log("Attack End "); 129 } 130 131} 132
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。