Example #1
0
    /// <summary>
    /// Draw a visible pink outline for the clipped area.
    /// </summary>

    void OnDrawGizmos()
    {
        if (mDebugInfo == DebugInfo.Gizmos)
        {
            bool    clip = (mClipping != NGUIDrawCall.Clipping.None);
            Vector2 size = clip ? new Vector2(mClipRange.z, mClipRange.w) : Vector2.zero;

            GameObject go       = UnityEditor.Selection.activeGameObject;
            bool       selected = (go != null) && (NGUITools.FindInParents <NGUIPanel>(go) == this);

            if (selected || clip || (mCam != null && mCam.isOrthoGraphic))
            {
                if (size.x == 0f)
                {
                    size.x = mScreenSize.x;
                }
                if (size.y == 0f)
                {
                    size.y = mScreenSize.y;
                }

                if (!clip)
                {
                    NGUIRoot root = NGUITools.FindInParents <NGUIRoot>(gameObject);
                    if (root != null)
                    {
                        size *= root.GetPixelSizeAdjustment(mScreenHeight);
                    }
                }

                Transform t = clip ? transform : (mCam != null ? mCam.transform : null);

                if (t != null)
                {
                    Vector3 pos = new Vector2(mClipRange.x, mClipRange.y);

                    Gizmos.matrix = t.localToWorldMatrix;

                    if (go != gameObject)
                    {
                        Gizmos.color = clip ? Color.magenta : new Color(0.5f, 0f, 0.5f);
                        Gizmos.DrawWireCube(pos, size);

                        // Make the panel selectable
                        //Gizmos.color = Color.clear;
                        //Gizmos.DrawCube(pos, size);
                    }
                    else
                    {
                        Gizmos.color = Color.green;
                        Gizmos.DrawWireCube(pos, size);
                    }
                }
            }
        }
    }