public override void OnDrawGizmos() { transform.localScale = Vector3.one; for (int i = 0; i < Points.Count; i++) { FTPoint p = Points[i]; if (p == null) { Points.RemoveAt(i); } else { FTDraw.DrawGizmosSphere(p.transform, Color.red, 1); } } }
public static void DrawPathNodes(EPathNodeType type, List <FTPathNode> pathNodes) { #if UNITY_EDITOR if (pathNodes.Count < 2) { return; } UnityEditor.Handles.color = Color.green; for (int i = 0; i < pathNodes.Count; i++) { FTPathNode n1 = pathNodes[i]; if (n1 == null) { pathNodes.RemoveAt(i); break; } n1.name = string.Format("P {0}", i); FTDraw.DrawGizmosSphere(n1.transform, Color.green, 0.5f); FTDraw.DrawLabelIcon(n1.gameObject, 6); if (i < pathNodes.Count - 1) { FTPathNode n2 = pathNodes[i + 1]; if (n2 == null) { continue; } switch (type) { case EPathNodeType.Linear: UnityEditor.Handles.DrawBezier(n1.transform.position, n2.transform.position, n1.transform.position, n2.transform.position, Color.green, null, 2); break; case EPathNodeType.Bezier: UnityEditor.Handles.DrawBezier(n1.transform.position, n2.transform.position, n1.TangentOut, n2.TangentIn, Color.green, null, 2); break; } } } #endif }