예제 #1
0
    void Start()
    {
        float distanceToClosestYol = Mathf.Infinity;
        Yol   closestYol           = null;

        Yol[] allYols = GameObject.FindObjectsOfType <Yol>();

        foreach (Yol currentYol in allYols)
        {
            float distanceToYol = (currentYol.transform.position - this.transform.position).sqrMagnitude;
            if (distanceToYol < distanceToClosestYol)
            {
                distanceToClosestYol = distanceToYol;
                closestYol           = currentYol;
            }
        }



        float farkx = closestYol.transform.position.x - this.transform.position.x;
        float farky = closestYol.transform.position.y - this.transform.position.y;

        float sina = (Mathf.Abs(farky) / Mathf.Sqrt(farkx * farkx + farky * farky));

        float sonucacı = (-Mathf.Asin(sina) * 180 / Mathf.PI);



        if (this.transform.position.x - closestYol.transform.position.x > 0 & this.transform.position.y - closestYol.transform.position.y > 0)
        {
            transform.Rotate(RotationX, -(-sonucacı + RotationY), RotationZ);
        }

        if (this.transform.position.x - closestYol.transform.position.x < 0 & this.transform.position.y - closestYol.transform.position.y < 0)
        {
            transform.Rotate(RotationX, -(-sonucacı + 180 + RotationY), RotationZ);
        }

        if (this.transform.position.x - closestYol.transform.position.x < 0 & this.transform.position.y - closestYol.transform.position.y > 0)
        {
            transform.Rotate(RotationX, -(180 + sonucacı + RotationY), RotationZ);
        }

        if (this.transform.position.x - closestYol.transform.position.x > 0 & this.transform.position.y - closestYol.transform.position.y < 0)
        {
            transform.Rotate(RotationX, -(sonucacı + RotationY), RotationZ);
        }
    }
예제 #2
0
    void Update()
    {
        float distanceToClosestYol = Mathf.Infinity;
        Yol   closestYol           = null;

        Yol[] allYols = GameObject.FindObjectsOfType <Yol>();

        foreach (Yol currentYol in allYols)
        {
            float distanceToYol = (currentYol.transform.position - this.transform.position).sqrMagnitude;
            if (distanceToYol < distanceToClosestYol)
            {
                distanceToClosestYol = distanceToYol;
                closestYol           = currentYol;
            }
        }



        float farkx = closestYol.transform.position.x - this.transform.position.x;
        float farky = closestYol.transform.position.y - this.transform.position.y;

        float sina = (Mathf.Abs(farky) / Mathf.Sqrt(farkx * farkx + farky * farky));

        float sonucacı = (-Mathf.Asin(sina) * 180 / Mathf.PI);

        //Vector3 dönülüceknokta = new Vector3(closestYol.transform.position.x,
        //                                closestYol.transform.position.y,
        //                                this.transform.position.z);
        //this.transform.LookAt(dönülüceknokta);

        //if (this.transform.position.x > closestYol.transform.position.x)
        //{
        //    transform.Rotate(0, 90, -90);
        //}

        //if (this.transform.position.x < closestYol.transform.position.x)
        //{
        //    transform.Rotate(0, -90, +90);
        //}
        //if(yeteraq==false)
        //{
        //    transform.Rotate(0, 0, 0);
        //    yeteraq = true;
        //}



        if (this.transform.position.x - closestYol.transform.position.x > 0 & this.transform.position.y - closestYol.transform.position.y > 0)
        {
            transform.rotation = Quaternion.Euler(0, 0, -sonucacı + RotationZ);
        }

        if (this.transform.position.x - closestYol.transform.position.x < 0 & this.transform.position.y - closestYol.transform.position.y < 0)
        {
            transform.rotation = Quaternion.Euler(0, 0, -sonucacı + 180 + RotationZ);
        }

        if (this.transform.position.x - closestYol.transform.position.x < 0 & this.transform.position.y - closestYol.transform.position.y > 0)
        {
            transform.rotation = Quaternion.Euler(0, 0, 180 + sonucacı + RotationZ);
        }

        if (this.transform.position.x - closestYol.transform.position.x > 0 & this.transform.position.y - closestYol.transform.position.y < 0)
        {
            transform.rotation = Quaternion.Euler(0, 0, sonucacı + RotationZ);
        }
    }