示例#1
0
        private bool Init(UnityEngine.Object obj, EditorFeatures requirements)
        {
            this.editor = Editor.CreateEditor(obj);
            if (this.editor == null)
            {
                return(false);
            }
            if (((requirements & EditorFeatures.PreviewGUI) > EditorFeatures.None) && !this.editor.HasPreviewGUI())
            {
                return(false);
            }
            MethodInfo method = this.editor.GetType().GetMethod("OnSceneDrag", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);

            if (method != null)
            {
                this.OnSceneDrag = (VoidDelegate)Delegate.CreateDelegate(typeof(VoidDelegate), this.editor, method);
            }
            else
            {
                if ((requirements & EditorFeatures.OnSceneDrag) > EditorFeatures.None)
                {
                    return(false);
                }
                this.OnSceneDrag = new VoidDelegate(this.DefaultOnSceneDrag);
            }
            return(true);
        }
		private bool Init(UnityEngine.Object obj, EditorFeatures requirements)
		{
			this.editor = Editor.CreateEditor(obj);
			if (this.editor == null)
			{
				return false;
			}
			if ((requirements & EditorFeatures.PreviewGUI) > EditorFeatures.None && !this.editor.HasPreviewGUI())
			{
				return false;
			}
			Type type = this.editor.GetType();
			MethodInfo method = type.GetMethod("OnSceneDrag", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
			if (method != null)
			{
				this.OnSceneDrag = (EditorWrapper.VoidDelegate)Delegate.CreateDelegate(typeof(EditorWrapper.VoidDelegate), this.editor, method);
			}
			else
			{
				if ((requirements & EditorFeatures.OnSceneDrag) > EditorFeatures.None)
				{
					return false;
				}
				this.OnSceneDrag = new EditorWrapper.VoidDelegate(this.DefaultOnSceneDrag);
			}
			return true;
		}
示例#3
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);
        }
        private bool Init(UnityEngine.Object obj, EditorFeatures requirements)
        {
            this.editor = Editor.CreateEditor(obj);
            bool result;

            if (this.editor == null)
            {
                result = false;
            }
            else if ((requirements & EditorFeatures.PreviewGUI) > EditorFeatures.None && !this.editor.HasPreviewGUI())
            {
                result = false;
            }
            else
            {
                Type       type   = this.editor.GetType();
                MethodInfo method = type.GetMethod("OnSceneDrag", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
                if (method != null)
                {
                    this.OnSceneDrag = (EditorWrapper.VoidDelegate)Delegate.CreateDelegate(typeof(EditorWrapper.VoidDelegate), this.editor, method);
                }
                else
                {
                    if ((requirements & EditorFeatures.OnSceneDrag) > EditorFeatures.None)
                    {
                        result = false;
                        return(result);
                    }
                    this.OnSceneDrag = new EditorWrapper.VoidDelegate(this.DefaultOnSceneDrag);
                }
                result = true;
            }
            return(result);
        }
 public static EditorWrapper Make(UnityEngine.Object obj, EditorFeatures requirements)
 {
   EditorWrapper editorWrapper = new EditorWrapper();
   if (editorWrapper.Init(obj, requirements))
     return editorWrapper;
   editorWrapper.Dispose();
   return (EditorWrapper) null;
 }
示例#6
0
 public static EditorWrapper Make(UnityEngine.Object obj, EditorFeatures requirements)
 {
     EditorWrapper wrapper = new EditorWrapper();
     if (wrapper.Init(obj, requirements))
     {
         return wrapper;
     }
     wrapper.Dispose();
     return null;
 }
示例#7
0
        public static EditorWrapper Make(UnityEngine.Object obj, EditorFeatures requirements)
        {
            EditorWrapper wrapper = new EditorWrapper();

            if (wrapper.Init(obj, requirements))
            {
                return(wrapper);
            }
            wrapper.Dispose();
            return(null);
        }
示例#8
0
        static public EditorWrapper Make(Object obj, EditorFeatures requirements)
        {
            EditorWrapper cp = new EditorWrapper();

            if (cp.Init(obj, requirements))
            {
                return(cp);
            }
            else
            {
                cp.Dispose();
                return(null);
            }
        }
        public static EditorWrapper Make(UnityEngine.Object obj, EditorFeatures requirements)
        {
            EditorWrapper editorWrapper = new EditorWrapper();
            EditorWrapper result;

            if (editorWrapper.Init(obj, requirements))
            {
                result = editorWrapper;
            }
            else
            {
                editorWrapper.Dispose();
                result = null;
            }
            return(result);
        }
示例#10
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);
        }
示例#11
0
 public EditorCache(EditorFeatures requirements)
 {
     this.m_Requirements = requirements;
     this.m_EditorCache  = new Dictionary <UnityEngine.Object, EditorWrapper>();
     this.m_UsedEditors  = new Dictionary <UnityEngine.Object, bool>();
 }
示例#12
0
		public EditorCache(EditorFeatures requirements)
		{
			this.m_Requirements = requirements;
			this.m_EditorCache = new Dictionary<UnityEngine.Object, EditorWrapper>();
			this.m_UsedEditors = new Dictionary<UnityEngine.Object, bool>();
		}
示例#13
0
 public EditorCache(EditorFeatures requirements)
 {
     m_Requirements = requirements;
     m_EditorCache  = new Dictionary <Object, EditorWrapper>();
     m_UsedEditors  = new Dictionary <Object, bool>();
 }