前提・実現したいこと
戦車から砲弾を発射する
こちらのチュートリアルの手順に沿って、砲弾を作成し発射させることができましたが、
なぜか速度ベクトルと速度が常に0と表示されてしまいます。
速度を正しく表示させたいです。
スクリプトは上記のサイトの4枚目のスライドにあります。
発生している問題・エラーメッセージ
エラーメッセージは出ていません。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class ShotShell : MonoBehaviour 6{ 7 8 public GameObject shellPrefab; 9 public float shotSpeed; 10 public AudioClip shotSound; 11 12 void Update() 13 { 14 15 // もしもZキーを押したならば 16 if (Input.GetKeyDown(KeyCode.Z)) 17 { 18 19 // 砲弾のプレハブを実体化する。 20 GameObject shell = Instantiate(shellPrefab, transform.position, Quaternion.identity) as GameObject; 21 22 // 砲弾に付いているRigidbodyコンポーネントにアクセスする。 23 Rigidbody shellRb = shell.GetComponent<Rigidbody>(); 24 25 // forward(青軸=Z軸)の方向に力を加える。 26 shellRb.AddForce(transform.forward * shotSpeed); 27 28 // 発射した砲弾を3秒後に破壊する。 29 Destroy(shell, 3.0f); 30 31 32 // 速度ベクトルを表示 33 Debug.Log("速度ベクトル: " + shellRb.velocity); 34 35 // 速度を表示 36 Debug.Log("速度: " + shellRb.velocity.magnitude); 37 } 38 } 39}
試したこと
先ほどのサイトのチュートリアルに従って作成しました。
スクリプトのvelocity.magnitudenの箇所は自分で追加しました。
ウェブサイトで、velocity.magnitudeが0になる原因を調べましたが参考になるサイトはありませんでした。
補足情報(FW/ツールのバージョンなど)
Unity2019.1.2f1
回答1件
あなたの回答
tips
プレビュー