コード例 #1
0
        public Rect Draw(Rect position)
        {
                        #if UNITY_EDITOR
            if (Platform.EditorMode)
            {
                bool headerHeightDetermined = true;
                var  actualDrawnPosition    = EditorGUIDrawer.AssetHeader(position, editor, ref headerHeightDetermined);

                                #if UNITY_2018_3_OR_NEWER
                if (isPrefab)
                {
                    const float padding       = 3f;
                    const float doublePadding = padding + padding;

                    position.y     += position.height - OpenInPrefabModeButtonHeight + padding;
                    position.height = OpenInPrefabModeButtonHeight - doublePadding;

                    DrawGUI.Active.ColorRect(position, InspectorUtility.Preferences.theme.AssetHeaderBackground);

                    position.x     += padding;
                    position.width -= doublePadding;

                    // UPDATE: even if prefab is being drawn in grayed out color
                    // due to being inactive, draw the open prefab button without
                    // being grayed out, to make it clear that it remains usable.
                    var guiColorWas = GUI.color;
                    var setColor    = guiColorWas;
                    setColor.a = 1f;
                    GUI.color  = setColor;
                    if (GUI.Button(position, OpenPrefabButtonLabel))
                    {
                        DrawGUI.UseEvent();
                        GameObjectDrawer.OpenPrefab(targets[0]);
                    }

                    GUI.color = guiColorWas;

                    actualDrawnPosition.height += OpenInPrefabModeButtonHeight;
                }
                                #endif

                return(actualDrawnPosition);
            }
                        #endif
            DrawGUI.Runtime.GameObjectHeader(position, targets[0]);
            return(position);
        }