Exemplo n.º 1
0
    //private Vector3 lastPos;

    //private void Start()
    //{
    //    lastPos = transform.position;
    //}

    private void Update()
    {
        // 1
        var pos = transform.position;
        var s   = SphereUtility.CartesianToSpherical(pos);

        target.r   = s.x;
        target.lat = s.y;
        target.lon = s.z;


        // 2
        //var pos = transform.position;
        // NOTE: spherical positions can't be subtracted like this
        //var s = SphereUtility.CartesianToSpherical(pos) - SphereUtility.CartesianToSpherical(lastPos);
        //lastPos = pos;
        //target.r += s.x;
        //target.lat += s.y;
        //target.lon += s.z;


        // 3
        //var pos = transform.position;
        //var s = SphereUtility.CartesianToSpherical(pos) - SphereUtility.CartesianToSpherical(lastPos);
        //target.r += s.x;
        ////target.lat += s.y;
        ////target.lon += s.z;

        //var quat = Quaternion.FromToRotation(lastPos, pos);
        ////Debug.Log(quat.eulerAngles);

        //target.transform.rotation = quat * target.transform.rotation;
        //lastPos = pos;
    }
Exemplo n.º 2
0
 public void StartRecord()
 {
     mytrail.Clear();
     startPos = transform.position;
     startSph = new Spherical3();
     SphereUtility.CartesianToSpherical(startPos - origin.transform.position, out startSph);
     mytrail.Push(startSph);
     StartCoroutine("Recording");
 }
Exemplo n.º 3
0
    // Update is called once per frame
    void Update()
    {
        Spherical3 sc = new Spherical3();

        Vector3 where = toTrack.transform.position - origin.transform.position;
        SphereUtility.CartesianToSpherical(where, out sc);

        // reflecting
        sc.p *= -1;

        Vector3 nwhere = new Vector3();

        SphereUtility.SphericalToCartesian(sc, out nwhere);

        transform.position = startPos + nwhere;
    }
Exemplo n.º 4
0
    IEnumerator Recording()
    {
        while (true)
        {
            Vector3 where = transform.position - origin.transform.position;

            if (randomize)
            {
                where.x += Random.Range(-0.5f, 0.5f);
                where.y += Random.Range(-0.5f, 0.5f);
                where.z += Random.Range(-0.5f, 0.5f);
            }
            SphereUtility.CartesianToSpherical(where, out sc);
            mytrail.Push(sc);

            Debug.Log(mytrail.Count);

            yield return(new WaitForSeconds(0.1f));
        }
    }