static void DrawHandles(StateTransitionPoint stateTransitionPoint, GizmoType gizmoType)
    {
        if (stateTransitionPoint.drawText)
        {
            GUIStyle stateStyle = new GUIStyle();
            stateStyle.normal.textColor = Color.yellow;
            stateStyle.alignment        = TextAnchor.MiddleCenter;
            stateStyle.contentOffset    = new Vector2(0, -7);

            GUIStyle indexStyle = new GUIStyle();
            indexStyle.normal.textColor = Color.yellow;
            indexStyle.alignment        = TextAnchor.LowerRight;
            indexStyle.contentOffset    = new Vector2(12, 3);

            stateStyle.fontSize = 20;

            Handles.Label(stateTransitionPoint.transform.position, StateManager.StateToString(stateTransitionPoint.TargetState)[0].ToString(), stateStyle);
            Handles.Label(stateTransitionPoint.transform.position, stateTransitionPoint.index.ToString(), indexStyle);

            if (stateTransitionPoint.EarthHex)
            {
                Gizmos.color = new Color(1.0f, 0.2f, 0.2f, 1.0f); // brown
                DrawArrow.ForGizmo(stateTransitionPoint.transform.position, stateTransitionPoint.EarthHex.transform.position - stateTransitionPoint.transform.position);
            }

            if (stateTransitionPoint.LightningHex)
            {
                Gizmos.color = new Color(0.0f, 0.0f, 1.0f, 1.0f); // blue
                DrawArrow.ForGizmo(stateTransitionPoint.transform.position, stateTransitionPoint.LightningHex.transform.position - stateTransitionPoint.transform.position);
            }

            if (stateTransitionPoint.CheckPoint)
            {
                Gizmos.color = new Color(0.93f, 0.58f, 0.04f, 1.0f); // yellow
                DrawArrow.ForGizmo(stateTransitionPoint.transform.position, stateTransitionPoint.CheckPoint.transform.position - stateTransitionPoint.transform.position);
            }

            if (stateTransitionPoint.cameraTargetHex)
            {
                Gizmos.color = Color.grey;
                DrawArrow.ForGizmo(stateTransitionPoint.transform.position, stateTransitionPoint.cameraTargetHex.transform.position - stateTransitionPoint.transform.position);
            }

            // Draw Bounds if it is selected
            if (Selection.transforms.Length > 0 && (Selection.transforms[0] == stateTransitionPoint.gameObject.transform.parent || Selection.transforms[0] == stateTransitionPoint.gameObject.transform))
            {
                Gizmos.color = Color.magenta;
                Vector3 centre = Vector3.zero;
                centre.x = (stateTransitionPoint.camBounds.x + stateTransitionPoint.camBounds.y) / 2;
                centre.z = (stateTransitionPoint.camBounds.z + stateTransitionPoint.camBounds.w) / 2;
                Vector3 size = Vector3.zero;
                size.x = (stateTransitionPoint.camBounds.x - stateTransitionPoint.camBounds.y);
                size.y = 5;
                size.z = (stateTransitionPoint.camBounds.z - stateTransitionPoint.camBounds.w);
                Gizmos.DrawWireCube(centre, size);
            }
        }
    }
Exemplo n.º 2
0
 public void SetCheckPoint(StateTransitionPoint a_lastEncounter, Vector3 a_position)
 {
     lastEncounter = a_lastEncounter;
 }