예제 #1
0
        void CreatePoints(Unit unit)
        {
            float x; float z;

            radius = unit.GetAttackRange();

            fov      = 360;        angle = 0;
            segments = maxSegmentCount;

            if (unit.UseDirectionalTargeting())
            {
                fov      = unit.targetingFov;
                segments = (int)Mathf.Ceil(maxSegmentCount * fov / 360f);

                Quaternion dir = unit.transform.rotation * Quaternion.Euler(0, unit.targetingDir, 0);
                angle = dir.eulerAngles.y - fov * 0.5f;
            }

            line.positionCount = segments + 1;
            line.startWidth    = radius * .25f;

            for (int i = 0; i < (segments + 1); i++)
            {
                x = Mathf.Sin(Mathf.Deg2Rad * angle) * (radius - line.startWidth * .5f);
                z = Mathf.Cos(Mathf.Deg2Rad * angle) * (radius - line.startWidth * .5f);

                line.SetPosition(i, thisT.position + new Vector3(x, 0, z));

                angle += (fov / segments);
            }
        }