UnityEditor.ObjectPreview.DrawPreview C# (CSharp) Method

DrawPreview() static private method

static private DrawPreview ( IPreviewable defaultPreview, Rect previewArea, Object targets ) : void
defaultPreview IPreviewable
previewArea UnityEngine.Rect
targets Object
return void
        internal static void DrawPreview(IPreviewable defaultPreview, Rect previewArea, Object[] targets)
        {
            if (s_Styles == null)
            {
                s_Styles = new Styles();
            }
            string infoString = string.Empty;
            Event current = Event.current;
            if (targets.Length > 1)
            {
                Rect rect = new RectOffset(0x10, 0x10, 20, 0x19).Remove(previewArea);
                int num = Mathf.Max(1, Mathf.FloorToInt((rect.height + 10f) / 77f));
                int num2 = Mathf.Max(1, Mathf.FloorToInt((rect.width + 10f) / 65f));
                int num3 = num * num2;
                int minimumNr = Mathf.Min(targets.Length, 0x19);
                bool flag = true;
                int[] numArray = new int[] { num2, num };
                if (minimumNr < num3)
                {
                    numArray = GetGridDivision(rect, minimumNr, 12);
                    flag = false;
                }
                int num5 = Mathf.Min(numArray[0] * numArray[1], targets.Length);
                rect.width += 10f;
                rect.height += 10f;
                Vector2 vector = new Vector2((float) Mathf.FloorToInt((rect.width / ((float) numArray[0])) - 10f), (float) Mathf.FloorToInt((rect.height / ((float) numArray[1])) - 10f));
                float a = Mathf.Min(vector.x, vector.y - 12f);
                if (flag)
                {
                    a = Mathf.Min(a, 55f);
                }
                bool flag2 = (((current.type == EventType.MouseDown) && (current.button == 0)) && (current.clickCount == 2)) && previewArea.Contains(current.mousePosition);
                defaultPreview.ResetTarget();
                for (int i = 0; i < num5; i++)
                {
                    Rect position = new Rect(rect.x + (((i % numArray[0]) * rect.width) / ((float) numArray[0])), rect.y + (((i / numArray[0]) * rect.height) / ((float) numArray[1])), vector.x, vector.y);
                    if (flag2 && position.Contains(Event.current.mousePosition))
                    {
                        Selection.objects = new Object[] { defaultPreview.target };
                    }
                    position.height -= 12f;
                    Rect rect3 = new Rect(position.x + ((position.width - a) * 0.5f), position.y + ((position.height - a) * 0.5f), a, a);
                    GUI.BeginGroup(rect3);
                    Editor.m_AllowMultiObjectAccess = false;
                    defaultPreview.OnInteractivePreviewGUI(new Rect(0f, 0f, a, a), s_Styles.preBackgroundSolid);
                    Editor.m_AllowMultiObjectAccess = true;
                    GUI.EndGroup();
                    position.y = rect3.yMax;
                    position.height = 16f;
                    GUI.Label(position, targets[i].name, s_Styles.previewMiniLabel);
                    defaultPreview.MoveNextTarget();
                }
                defaultPreview.ResetTarget();
                if (Event.current.type == EventType.Repaint)
                {
                    infoString = string.Format("Previewing {0} of {1} Objects", num5, targets.Length);
                }
            }
            else
            {
                defaultPreview.OnInteractivePreviewGUI(previewArea, s_Styles.preBackground);
                if (Event.current.type == EventType.Repaint)
                {
                    infoString = defaultPreview.GetInfoString();
                    if (infoString != string.Empty)
                    {
                        infoString = infoString.Replace("\n", "   ");
                        infoString = string.Format("{0}\n{1}", defaultPreview.target.name, infoString);
                    }
                }
            }
            if ((Event.current.type == EventType.Repaint) && (infoString != string.Empty))
            {
                float height = s_Styles.dropShadowLabelStyle.CalcHeight(GUIContent.Temp(infoString), previewArea.width);
                EditorGUI.DropShadowLabel(new Rect(previewArea.x, (previewArea.yMax - height) - 5f, previewArea.width, height), infoString);
            }
        }

Same methods

ObjectPreview::DrawPreview ( Rect previewArea ) : void

Usage Example

 public override void DrawPreview(Rect previewArea)
 {
     ObjectPreview.DrawPreview(this, previewArea, new UnityEngine.Object[]
     {
         base.targets[0]
     });
 }
All Usage Examples Of UnityEditor.ObjectPreview::DrawPreview