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);
}