Ejemplo n.º 1
0
 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);
         }
     }
 }
Ejemplo n.º 2
0
        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
        }