// Use this for initialization
    void Start()
    {
        if (!Observer)
        {
            Observer = Camera.main.gameObject;
        }
        Renderer r = GetComponent <Renderer>();

        if (r != null)
        {
            mat = r.material;
        }
        if (mat != null)
        {
            if (mat.shader == Shader.Find("Relativity/Relativity_Shader"))
            {
                shaderMat = true;
            }
        }
        observer_script = Observer.GetComponent <Relativity_Observer>();
        MR = GetComponent <SkinnedMeshRenderer>();
        if (MR)
        {
            MR.updateWhenOffscreen = true;
        }
        v = RelVelAdd(new Vector3(0.213f, 0.874f, 0) * 0.655f, new Vector3(-0.353f, 0.497f, 0) * 0.61f);
        b = v.magnitude;
        v = v.normalized;
    }
Ejemplo n.º 2
0
    // Use this for initialization
    void Start()
    {
        if (!Observer)
        {
            Observer = Camera.main.gameObject;
        }
        Renderer r = GetComponent <Renderer>();

        if (r != null)
        {
            mat = r.material;
        }
        if (mat != null)
        {
            if (mat.shader == Shader.Find("Relativity/Relativity_Shader"))
            {
                shaderMat = true;
            }
        }
        observer_script = Observer.GetComponent <Relativity_Observer>();
        MR = GetComponent <SkinnedMeshRenderer>();
        if (MR)
        {
            MR.updateWhenOffscreen = true;
        }
    }
 void Start()
 {
     observerScript = Observer.GetComponent <Relativity_Observer>();
     //plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
     //plane.name = name + " Simultaneity Plane";
     sphere      = GameObject.CreatePrimitive(PrimitiveType.Sphere);
     sphere.name = name + " Observer Representation";
 }
 // Use this for initialization
 void Start()
 {
     obs = Observer.GetComponent <Relativity_Observer>();
     //coordinateTimeStart = obs.CoordinateTime;
     lr          = GetComponent <LineRenderer>();
     rb          = GetComponent <Relativity_Rigidbody>();
     rb.Observer = Observer;
 }
 // Use this for initialization
 void Start()
 {
     obs = Observer.GetComponent <Relativity_Observer>();
     GameObject[] objects = GameObject.FindObjectsOfType(typeof(GameObject)) as GameObject[];
     charges = new List <Relativity_ChargedObject>();
     foreach (GameObject obj in objects)
     {
         if (obj.GetComponent <Relativity_ChargedObject>() != null && obj.transform != transform)
         {
             charges.Add(obj.GetComponent <Relativity_ChargedObject>());
         }
     }
     thisCharge = GetComponent <Relativity_ChargedObject>();
 }
    void Start()
    {
        if (velocity.magnitude >= 1)
        {
            velocity = velocity.normalized * (0.9999999f);
        }
        obs            = Observer.GetComponent <Relativity_Observer>();
        CoordinateTime = obs.CoordinateTime;
        Vector3 u = velocity;
        Vector3 v = obs.velocity;

        if (v.magnitude >= 1)
        {
            v = v.normalized * (0.9999999f);
        }
        if (u != v)
        {
            relativeVelocity = Mathf.Sqrt(1 - ((1 - Mathf.Pow(u.magnitude, 2)) * (1 - Mathf.Pow(v.magnitude, 2))) / Mathf.Pow(1 - Vector3.Dot(u, v), 2)) * (u - v).normalized;
        }
        else
        {
            relativeVelocity = Vector3.zero;
        }
        if (relativeVelocity.magnitude >= 1)
        {
            relativeVelocity = relativeVelocity.normalized * (0.9999999f);
        }
        γ = 1f / Mathf.Sqrt(1 - relativeVelocity.sqrMagnitude);

        startingPosition = new Vector4((float)CoordinateTime, (transform.position - Observer.transform.position).x, (transform.position - Observer.transform.position).y, (transform.position - Observer.transform.position).z);

        scaler      = new GameObject();
        scaler.name = name;

        scaler.transform.position = Observer.transform.position;
        scaler.transform.LookAt(Observer.transform.position + relativeVelocity);

        transform.parent = scaler.transform;

        scaler.transform.localScale = new Vector3(1, 1, 1f / γ);
        boost = LorentzBoost(relativeVelocity.x, relativeVelocity.y, relativeVelocity.z);
        //if (u != v)
        //	startingPosition = (Vector4)boost.MultiplyVector(startingPosition);
    }
    void Start()
    {
        if (Velocity.magnitude >= 0.9999999f)
        {
            Velocity = Velocity.normalized * (0.9999999f);
        }
        observer_script = Observer.GetComponent <Relativity_Observer>();
        coordinate_time = observer_script.CoordinateTime;

        scaler      = new GameObject();
        scaler.name = name + " - Scaler";

        rotater      = new GameObject();
        rotater.name = name + " - Rotater";

        proper_starting_event = CombineTemporalAndSpacial(-(float)Proper_Time_Offset, transform.position);
        //mat = GetComponent<Renderer>().material;
        //if (mat.shader == Shader.Find("Relativity/Relativity_Shader"))
        //	shaderMat = true;
    }