Exemple #1
0
    Vector3 updateVelocity(CelestialObject celestialObject, GameObject gameObject,
                           CelestialObject targetCelestial, Vector3 targetPosition, bool isMoon)
    {
        float      time                = isMoon ? 1 :.005f;
        float      celestialMass       = celestialObject.getMass();
        Vector3    velocity            = celestialObject.getVelocity();
        GameObject celestialGameObject = gameObject;
        Vector3    originalPos         = celestialGameObject.transform.position;
        Vector3    acceleration        = (calcForce(originalPos, celestialMass, targetPosition, targetCelestial.getMass(), isMoon) / celestialMass);

        print(acceleration);
        celestialGameObject.transform.position += (velocity * time + .5f * acceleration * time * time);
        Vector3 newPosition = celestialGameObject.transform.position;

        velocity = (newPosition - originalPos) / time;
        return(velocity);
    }