Ejemplo n.º 1
0
    private static void drawEdge(EdgeCollider2D edge, Color color)
    {
        Vector2[] vertices = edge.GetWorldPoints();
        if (vertices == null)
        {
            return;
        }

        for (int i = 0; i < vertices.Length; i++)
        {
            int ii = (i + 1) % vertices.Length;
            // Draw edge
            if (ii != 0)
            {
                Gizmos.color = color;
                Gizmos.DrawLine(vertices[i], vertices[ii]);
            }

            // Draw vertex
            if (Selection.activeGameObject == edge.gameObject)
            {
                Gizmos.color = ColorPalletReader.GetVertexColor(ColorStates.PATH);
                if (i == _selectedVertex)
                {
                    Gizmos.color = ColorPalletReader.GetVertexColor(ColorStates.SELECTED);
                }
                Gizmos.DrawSphere(vertices[i], BrushSettingsWindow.VertexSize);
                if (BrushSettingsWindow.ShowVertexInfo == true)
                {
                    Handles.Label(vertices[i] + new Vector2(0.1f, 0.4f), edge.GetLocalPoint(vertices[i]).ToString());
                }
            }
        }
    }
Ejemplo n.º 2
0
 public static void UpdateVertexPosition(this EdgeCollider2D edge, Vector3 newPosition, int selectedVertex)
 {
     Undo.RecordObject(edge, string.Format("Move vertex {0} in {1}", selectedVertex, edge.name));
     Vector2[] vertices = edge.points;
     vertices[selectedVertex] = edge.GetLocalPoint(newPosition);
     edge.points = vertices;
 }