前提・実現したいこと
オブジェクトの移動するスピードを一定に保ちたいです。
最初は、初速度を与えて放置することで実現していましたが、オブジェクトが別のオブジェクトに挟まれるなどした際に加速したり減速してしまうことがわかりました。
このオブジェクトは頻繁に移動方向を変えるため、単純に力を加えるだけでは逆効果になってしまうケースが出てしまいます。
このオブジェクトの速度を一定に保つことは可能でしょうか。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class ObjectSpeed : MonoBehaviour 6{ 7 private float Speed = 100f;//オブジェクトのスピードを100fに保ちたい 8 private Rigidbody rb; 9 10 void Update() 11 { 12 Rigidbody rb = this.transform.GetComponent<Rigidbody>(); 13 if(rb.velocity.magnitude != Speed)//速度が規定値と異なる場合 14 { 15 //magnitudeを100fに戻すこの部分がわかりません 16 } 17 } 18}
試したこと
C#
1rb.velocity.magnitude = Speed;
このように記述してみましたが、magnitudeは読み取り専用だったためエラーを吐かれてしまいました…。
補足情報(FW/ツールのバージョンなど)
Unity 2018.4.28f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/12 13:20