예제 #1
0
        /// <summary>
        /// Draw from the first point to all of the rest
        /// </summary>
        private void DrawStar(List <Vector2> points)
        {
            Vector2 pointPos = points[0];

            for (int i = 1; i < points.Count; i++)
            {
                Vector2 nextPointPos = points[i];
                HandleAAUtil.DrawAALine(pointPos, nextPointPos, LDtkPrefs.FieldPointsThickness);
            }
        }
예제 #2
0
        /// <summary>
        /// Draw a daisy-chain of points
        /// </summary>
        private void DrawPath(List <Vector2> points)
        {
            Vector3[] pathPoints = new Vector3[points.Count];

            for (int i = 0; i < points.Count; i++)
            {
                pathPoints[i] = points[i];
            }

            HandleAAUtil.DrawAAPath(pathPoints, LDtkPrefs.FieldPointsThickness);
        }
예제 #3
0
        /// <summary>
        /// Draw points in isolation
        /// </summary>
        private void DrawPoints(List <Vector2> points)
        {
            const float boxUnitSize = 0.2f;

            float extraThickness = (LDtkPrefs.FieldPointsThickness - 1) * (boxUnitSize / 2);

            Vector3 size = Vector2.one * (boxUnitSize + extraThickness);

            foreach (Vector2 point in points)
            {
                HandleAAUtil.DrawAABox(point, size, fillAlpha: 0, thickness: LDtkPrefs.FieldPointsThickness);
            }
        }
예제 #4
0
        public void OnDrawHandles()
        {
            if (!LDtkPrefs.ShowLevelBorder)
            {
                return;
            }

            Handles.color = _bgColor;
            Vector3 halfSize = _size / 2;
            Vector3 pos      = _position + halfSize;

            HandleAAUtil.DrawAABox(pos, _size, LDtkPrefs.LevelBorderThickness, 0);
        }
예제 #5
0
        private void DrawShape(Vector2 pos, Vector2 size, float fillAlpha, float lineAlpha)
        {
            switch (_data.EntityMode)
            {
            case RenderMode.Cross:
                HandleAAUtil.DrawAACross(pos, size, LDtkPrefs.EntityShapeThickness);
                break;

            case RenderMode.Ellipse:
                HandleAAUtil.DrawAAEllipse(pos, size, LDtkPrefs.EntityShapeThickness, fillAlpha, lineAlpha);
                break;

            case RenderMode.Rectangle:
                HandleAAUtil.DrawAABox(pos, size, LDtkPrefs.EntityShapeThickness, fillAlpha, lineAlpha);
                break;
            }
        }
예제 #6
0
        private void DrawRadius(float gridSize)
        {
            if (gridSize == 0)
            {
                Debug.LogError("Did not draw, avoided dividing by zero");
                return;
            }

            float radius   = GetRadius() / gridSize;
            float diameter = radius * 2;

            if (_fields.GetSmartColor(out Color color))
            {
                UnityEditor.Handles.color = color;
            }

            HandleAAUtil.DrawAAEllipse(_fields.transform.position, Vector2.one * diameter, LDtkPrefs.FieldRadiusThickness, 0);
        }
예제 #7
0
 /// <summary>
 /// Draw a daisy-chain of points that loops back to the start
 /// </summary>
 private void DrawPathLoop(List <Vector2> points)
 {
     DrawPath(points);
     HandleAAUtil.DrawAALine(points.First(), points.Last(), LDtkPrefs.FieldPointsThickness);
 }