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); } }