コード例 #1
0
    private static float GetRotationSpeed(double blackHoleMass, float distance)
    {
        // 0.01, 2.5
        // 0.009, 1.0

        double newDistance = 0.009 + ((distance - 0.01) * (1.0 - 0.009)) / (2.5 - 0.01);

        double timeDilation = PhysicsCalculations.getTimeDilationAmount(1.0, blackHoleMass, newDistance);

        float rotationSpeed = (1.0f - (float)timeDilation) + 0.2f;

        return(rotationSpeed);
    }
コード例 #2
0
    void Update()
    {
        if (isBlackHole)
        {
            float distance    = Vector3.Distance(blackHole.transform.position, properTimeFrame.transform.position);
            float newDistance = 0.005f + (distance - 0) * (0.1f - 0.005f) / (20f - 0);

            float timeDilation = 1.0f - (float)PhysicsCalculations.getTimeDilationAmount(1.0, orbitObject.mass, distance);

            //Debug.Log(timeDilation);
        }
        //    transform.position = new Vector3(Mathf.PingPong(Time.time * timeDilation, 0.5f), transform.position.y, transform.position.z);
        //} else
        //{
        //    transform.position = new Vector3(Mathf.PingPong(Time.time, 1), transform.position.y, transform.position.z);
        //}
    }