private void CallOnPreSceneGUI()
{
foreach (Editor editor in this.GetActiveEditors())
{
Handles.matrix = Matrix4x4.identity;
Component target = editor.target as Component;
if ((target == null) || target.gameObject.activeInHierarchy)
{
MethodInfo method = editor.GetType().GetMethod("OnPreSceneGUI", BindingFlags.FlattenHierarchy | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
if (method != null)
{
Editor.m_AllowMultiObjectAccess = true;
for (int i = 0; i < editor.targets.Length; i++)
{
editor.referenceTargetIndex = i;
Editor.m_AllowMultiObjectAccess = !editor.canEditMultipleObjects;
method.Invoke(editor, null);
Editor.m_AllowMultiObjectAccess = true;
}
}
}
}
if (onPreSceneGUIDelegate != null)
{
onPreSceneGUIDelegate(this);
}
Handles.matrix = Matrix4x4.identity;
}