実現したいこと
物体を音速で移動させて音の聞こえ方を調べてみたいと思っています。
Rigidbodyのvelocityで移動させて検証しようと思ったのですが、速度の単位がわかりませんでした。
スクリプトリファレンスには
the cube is going to move upwards in 10 units per second
rb.velocity = new Vector3(0, 10, 0);
とかいてありました。unitsとはどの単位なのでしょうか。
試したこと
private Rigidbody sphereRb; public float speed = 100f; // Start is called before the first frame update void Start() { sphereRb = GetComponent<Rigidbody>(); } // Update is called once per frame void Update() { sphereRb.velocity = new Vector3(0, 0, -10); }
と、移動させるソースコードを書きました。
その後、
オーディオソースで一定の音をループ再生
onAwakeに設定
カメラにオーディオリスナーを設定
分かったこと
基本的に、velocityはm/s
また、どれだけsphereの速度を早くしてもドップラー効果はあるものの、ソニックブームのような現象は起きませんでした。
追加の質問
オーディオソースの音の聞こえ方を設定する曲線をいじっていて分かったことなのですが、どれほど遠くにいても、音の聞こえる範囲を大きくすればゲームを開始したらすぐに音が聞こえました。つまり、これは音の速度はUnityでは考慮されていないのでしょうか。
わかったこと2
音の聞こえ方を設定する曲線の右端を一番下、つまり0にしない限り、どれほど遠くに離れていても聞こえてしまうということが起こることがわかりました。
回答1件
あなたの回答
tips
プレビュー