ブラックホールのようなものを作る2
先日、万有引力の挙動を示すコードを作成したが、
あれって地球視点だから、ゲームには応用しにくいと思い
太陽視点のコードを作成
といっても記載内容はほぼ変わらず
thisがGameobject earthに変わったくらいか。
こんなに簡単にオブジェクトの挙動をいじれるなんで
ほんとUnity様様ですよ。
public class inryoku : MonoBehaviour { Vector3 distance;//2物体間の距離 Vector3 centerPosition;//軌道の中心の座標 Vector3 forceObject;//移動する物体にかかる力 float gravityConst = 100.0f;//定数(=GMm)のパラメータ Rigidbody2D rigid2D; GameObject earth; // Use this for initialization void Start () { centerPosition = transform.position; this.earth = GameObject.Find("earth"); this.rigid2D = earth.GetComponent<Rigidbody2D>(); } // Update is called once per frame void Update () { distance = centerPosition - earth.transform.position; forceObject = gravityConst * distance / Mathf.Pow(distance.magnitude, 3); this.rigid2D.AddForce(forceObject, ForceMode2D.Force); } }