|
|
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
-
- public class Gravitypull : MonoBehaviour {
-
- //public GameObject gravityWell;
- //public float wellMass;
- public int gravConstPow;
-
- public
-
- GameObject[] planets;
-
-
- //public double gravConstant = 6.673f * Mathf.Pow(10,11);
-
-
- // Use this for initialization
- void Start () {
-
- planets = GameObject.FindGameObjectsWithTag ("ground");
-
- }
-
- // Update is called once per frame
- void Update () {
-
- }
-
- void FixedUpdate() {
-
- foreach (GameObject planet in planets) {
- rigidbody2D.AddForce( calcGrav (planet));
- }
-
-
-
- }
-
- private Vector2 calcGrav(GameObject planet){
- double gravConstant = 6.673f * Mathf.Pow(10,gravConstPow);
- float gravityForce;
- Vector3 distance = planet.transform.position - transform.position;
- float r12 = distance.magnitude;
- distance /= r12;
- //Debug.Log ("distance: " + distance);
-
- gravityForce = (rigidbody2D.mass * planet.rigidbody2D.mass * (float)gravConstant) / (r12 * r12);
-
- //Debug.Log ("player mass: " + rigidbody.mass);
- //Debug.Log ("well mass: " + wellMass);
- //Debug.Log ("grav Const: " + (float)gravConstant);
- //Debug.Log ("r12: " + r12);
-
- //Debug.Log ("gravityForce: " + gravityForce);
-
-
- Vector2 distance2D = new Vector2 (distance.x, distance.y);
- Debug.Log ("force added: " + (distance2D * gravityForce));
- return (distance2D * gravityForce);
-
-
- }
- }
|