HasPreviewGUI() публичный Метод

Override this method in subclasses if you implement OnPreviewGUI.

public HasPreviewGUI ( ) : bool
Результат bool
Пример #1
0
        private bool Init(Object obj, EditorFeatures requirements)
        {
            MethodInfo onSceneDragMi;

            editor = Editor.CreateEditor(obj);
            if (editor == null)
            {
                return(false);
            }

            if ((int)(requirements & EditorFeatures.PreviewGUI) > 0 && !editor.HasPreviewGUI())
            {
                return(false);
            }

            System.Type t = editor.GetType();

            onSceneDragMi = t.GetMethod("OnSceneDrag", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
            if (onSceneDragMi != null)
            {
                OnSceneDrag = (VoidDelegate)System.Delegate.CreateDelegate(typeof(VoidDelegate), editor, onSceneDragMi);
            }
            else if ((int)(requirements & EditorFeatures.OnSceneDrag) > 0)
            {
                return(false);
            }
            else
            {
                OnSceneDrag = DefaultOnSceneDrag;
            }

            return(true);
        }
Пример #2
0
        private bool Init(UnityEngine.Object obj, EditorFeatures requirements)
        {
            editor = Editor.CreateEditor(obj);
            if (editor == null)
            {
                return(false);
            }
            if ((requirements & EditorFeatures.PreviewGUI) > EditorFeatures.None && !editor.HasPreviewGUI())
            {
                return(false);
            }
            Type       type   = editor.GetType();
            MethodInfo method = type.GetMethod("OnSceneDrag", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            if (method != null)
            {
                OnSceneDrag = (EditorWrapper.VoidDelegate)Delegate.CreateDelegate(typeof(EditorWrapper.VoidDelegate), editor, method);
            }
            else
            {
                if ((requirements & EditorFeatures.OnSceneDrag) > EditorFeatures.None)
                {
                    return(false);
                }
                OnSceneDrag = new EditorWrapper.VoidDelegate(DefaultOnSceneDrag);
            }
            return(true);
        }
Пример #3
0
 void OnGUI()
 {
     if (previewEditor != null)
     {
         if (previewEditor.HasPreviewGUI())
         {
             Rect r = GUILayoutUtility.GetRect(100, 100, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
             previewEditor.OnPreviewGUI(r, GUIStyle.none);
         }
     }
 }
Пример #4
0
        private bool Init(Object obj, EditorFeatures requirements)
        {
            editor = Editor.CreateEditor(obj);
            if (editor == null)
            {
                return(false);
            }

            if (requirements.HasFlag(EditorFeatures.PreviewGUI) && !editor.HasPreviewGUI())
            {
                return(false);
            }

            var onSceneDragMi = editor.GetType().GetMethod("OnSceneDrag", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            var objs           = new[] { obj };
            var rootEditorType = RootEditorUtils.FindRootEditor(objs);

            if (rootEditorType != null && onSceneDragMi == null)
            {
                // Create normal editor:
                editor        = RootEditorUtils.CreateNonRootEditor(objs);
                onSceneDragMi = editor.GetType().GetMethod("OnSceneDrag", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
            }

            if (onSceneDragMi != null)
            {
                OnSceneDrag = (VoidDelegate)System.Delegate.CreateDelegate(typeof(VoidDelegate), editor, onSceneDragMi);
            }
            else if (requirements.HasFlag(EditorFeatures.OnSceneDrag))
            {
                return(false);
            }
            else
            {
                OnSceneDrag = DefaultOnSceneDrag;
            }

            return(true);
        }
Пример #5
0
        public void OnGUI(Rect rect)
        {
            Rect PreviewRect = new Rect(
                rect.x + rect.width * 0.6f - 10, rect.y + 10,
                rect.width * 0.4f, rect.height - 15
                );
            GUIStyle inputSt = new GUIStyle(GUI.skin.GetStyle("CN Box"));

            inputSt.fixedWidth    = PreviewRect.x - rect.x - TitleWidth - 10;
            inputSt.fixedHeight   = 30;
            inputSt.contentOffset = new Vector2(3, 0);
            inputSt.alignment     = TextAnchor.MiddleLeft;

            GUIStyle labelSt = new GUIStyle(GUI.skin.GetStyle("LODRendererAddButton"));

            labelSt.fixedWidth  = TitleWidth;
            labelSt.fixedHeight = 30;
            labelSt.alignment   = TextAnchor.MiddleRight;

            GUIStyle checkBoxSt = new GUIStyle(GUI.skin.GetStyle("BoldToggle"));

            checkBoxSt.alignment   = TextAnchor.MiddleLeft;
            checkBoxSt.fixedWidth  = 30;
            checkBoxSt.fixedHeight = 30;

            GUILayout.BeginArea(rect, GUI.skin.GetStyle("CN Box"));
            GUILayout.BeginVertical();
            GUILayout.Space(offset);
            if (this.mCurrentSelectAssets != null)
            {
                GUILayout.BeginHorizontal();
                {
                    GUILayout.Label(new GUIContent(Language.AssetName + ":"), labelSt);


                    if (mCurrentSelectAssets != null)
                    {
                        GUILayout.Label(mCurrentSelectAssets.data.address, inputSt);
                    }
                    else
                    {
                        GUILayout.Label("", inputSt);
                    }

                    GUILayout.FlexibleSpace();
                    GUILayout.EndHorizontal();
                }
                GUILayout.Space(offset);
                GUILayout.BeginHorizontal();
                {
                    string type = "";
                    if (mCurrentSelectAssets != null)
                    {
                        type = mCurrentSelectAssets.data.type;
                    }

                    GUILayout.Label(new GUIContent(Language.AssetType + ":"), labelSt);
                    GUILayout.Label(type, inputSt);
                    GUILayout.FlexibleSpace();
                    GUILayout.EndHorizontal();
                }

                GUILayout.Space(offset);
                GUILayout.BeginHorizontal();
                {
                    string path = "";
                    if (mCurrentSelectAssets != null)
                    {
                        path = mCurrentSelectAssets.data.path;
                    }

                    GUILayout.Label(new GUIContent(Language.Path + ":"), labelSt);
                    GUILayout.Label(path, inputSt);
                    GUILayout.FlexibleSpace();
                    GUILayout.EndHorizontal();
                }

                GUILayout.Space(offset);

                GUILayout.BeginHorizontal();
                {
                    string url = "";
                    if (mCurrentSelectAssets != null)
                    {
                        url = mCurrentSelectAssets.data.url;
                    }

                    GUILayout.Label(new GUIContent(Language.ResUrl + ":"), labelSt);
                    GUILayout.Label(url, inputSt);
                    GUILayout.FlexibleSpace();
                    GUILayout.EndHorizontal();
                }

                GUILayout.Space(offset);

                GUILayout.BeginHorizontal();
                {
                    bool flag = false;
                    if (mCurrentSelectAssets != null)
                    {
                        flag = mCurrentSelectAssets.data.isResourcesPath;
                    }

                    GUILayout.Label(new GUIContent(Language.isResource + ":"), labelSt);

                    GUILayout.Label(flag ? Language.Yes : Language.No, inputSt);
                    GUILayout.FlexibleSpace();
                    GUILayout.EndHorizontal();
                }

                GUILayout.Space(offset);
                GUILayout.BeginHorizontal();
                {
                    GUILayout.Label(new GUIContent(Language.isKeepInMemory + ":"), labelSt);
                    if (mCurrentSelectAssets != null)
                    {
                        mCurrentSelectAssets.data.isKeepInMemory =
                            GUILayout.Toggle(mCurrentSelectAssets.data.isKeepInMemory, "", checkBoxSt);
                    }
                    else
                    {
                        GUILayout.Toggle(false, "", checkBoxSt);
                    }



                    GUILayout.FlexibleSpace();
                    GUILayout.EndHorizontal();
                }
//                GUILayout.Space(offset);
//                GUILayout.BeginHorizontal();
//                {
//                    GUILayout.Label(new GUIContent("FGUI包:"), labelSt);
//                    if (mCurrentSelectAssets != null)
//                    {
//                        mCurrentSelectAssets.data.isFairyGuiPack =
//                            GUILayout.Toggle(mCurrentSelectAssets.data.isFairyGuiPack, "", checkBoxSt);
//                    }
//                    else
//                    {
//                        GUILayout.Toggle(false, "", checkBoxSt);
//                    }
//
//                    GUILayout.FlexibleSpace();
//                    GUILayout.EndHorizontal();
//                }
            }

            GUILayout.EndVertical();


            GUILayout.EndArea();


            //GUILayout.BeginArea(PreviewRect, GUI.skin.GetStyle("preBackground"));
            if (this.mCurrentSelectAssets != null)
            {
                Texture texture = EditorGUIUtility.FindTexture("Refresh");
                Type    t       = AssetDatabase.GetMainAssetTypeAtPath(this.mCurrentSelectAssets.data.path);
                texture = AssetDatabase.GetCachedIcon(this.mCurrentSelectAssets.data.path);

                if (preEditor == null)
                {
                    preEditor = UnityEditor.Editor.CreateEditor(AssetDatabase.LoadAssetAtPath(this.mCurrentSelectAssets.data.path, t));
                }

                if (preEditor != null && preEditor.HasPreviewGUI())
                {
                    try
                    {
                        preEditor.OnPreviewGUI(PreviewRect, GUI.skin.GetStyle("preBackground"));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        // throw;
                    }
                }
                else
                {
                    texture = AssetDatabase.GetCachedIcon(this.mCurrentSelectAssets.data.path);
                }
            }

            //GUILayout.EndArea();
        }
Пример #6
0
 public bool HasPreviewGUI()
 {
     return(editor.HasPreviewGUI());
 }