Пример #1
0
        public static void AddFlag(Vector3 rPosition, Quaternion rRotation, float rHeight, Color rColor, string rText, Vector3 rVector)
        {
            if (!IsActive) { return; }

            SceneFlag lFlag = new SceneFlag();
            lFlag.Position = rPosition;
            lFlag.Rotation = rRotation;
            lFlag.Height = rHeight;
            lFlag.Color = rColor;
            lFlag.Text = rText;
            lFlag.Vector = rVector;

            Flags.Add(lFlag);
        }
Пример #2
0
        public static void AddFlag(Vector3 rPosition, Quaternion rRotation, float rHeight, Color rColor, string rText, Vector3 rVector)
        {
            if (!IsActive)
            {
                return;
            }

            SceneFlag lFlag = new SceneFlag();

            lFlag.Position = rPosition;
            lFlag.Rotation = rRotation;
            lFlag.Height   = rHeight;
            lFlag.Color    = rColor;
            lFlag.Text     = rText;
            lFlag.Vector   = rVector;

            Flags.Add(lFlag);
        }
Пример #3
0
        /// <summary>
        /// Called each frame to render GUI to the editor
        /// </summary>
        private void OnDrawGizmos()
        {
#if UNITY_EDITOR
            Handles.BeginGUI();

            for (int i = 0; i < SceneFlags.Flags.Count; i++)
            {
                SceneFlag lFlag   = SceneFlags.Flags[i];
                Vector3   lFlagUp = lFlag.Rotation.Up();

                //DebugDraw.DrawSphereMesh(lFlag.Position, 0.02f, lFlag.Color, 1f);
                UnityEngine.Debug.DrawLine(lFlag.Position, lFlag.Position + (lFlagUp * lFlag.Height), lFlag.Color);

                if (lFlag.Vector != Vector3.zero)
                {
                    Vector3 lVectorStart = lFlag.Position + (lFlagUp * (lFlag.Height * 0.9f));
                    UnityEngine.Debug.DrawLine(lVectorStart, lVectorStart + (lFlag.Vector * 0.3f), lFlag.Color);
                }

                string lText = lFlag.Text;
                if (lText.Length == 0)
                {
                    lText = "Flag " + i;
                }

                Color lHandleColor = GUI.color;

                GUI.color = lFlag.Color;
                Handles.Label(lFlag.Position + (lFlagUp * (lFlag.Height * 1.1f)), lText);

                // Reset
                GUI.color = lHandleColor;
            }

            Handles.EndGUI();
#endif
        }