137 lines
2.8 KiB
C#
137 lines
2.8 KiB
C#
// =====================================================================
|
|
// Copyright 2013-2017 Fluffy Underware
|
|
// All rights reserved
|
|
//
|
|
// http://www.fluffyunderware.com
|
|
// =====================================================================
|
|
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Reflection;
|
|
using FluffyUnderware.DevTools.Extensions;
|
|
using System;
|
|
|
|
namespace FluffyUnderware.DevToolsEditor
|
|
{
|
|
#if UNITY_2021_2_OR_NEWER
|
|
[Obsolete("Now that SceneView has a OnSceneGUI method, there is seemingly no need to use DTSceneView which implements its own OnSceneGUI. It might even conflict with SceneView.OnSceneGUI")]
|
|
#endif
|
|
public class DTSceneView : SceneView
|
|
{
|
|
|
|
#region ### Serialized fields ###
|
|
#endregion
|
|
|
|
#region ### Public Properties ###
|
|
|
|
public bool In2DMode
|
|
{
|
|
get { return in2DMode; }
|
|
set
|
|
{
|
|
in2DMode = value;
|
|
}
|
|
}
|
|
|
|
public SceneViewState State
|
|
{
|
|
get
|
|
{
|
|
return mStateField.GetValue(this) as SceneViewState;
|
|
}
|
|
set
|
|
{
|
|
mStateField.SetValue(this, value);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ### Privates Fields ###
|
|
|
|
FieldInfo mStateField;
|
|
|
|
#endregion
|
|
|
|
#region ### Unity Callbacks ###
|
|
/*! \cond UNITY */
|
|
|
|
public override void OnEnable()
|
|
{
|
|
base.OnEnable();
|
|
getInternals();
|
|
SceneView.
|
|
#if UNITY_2019_1_OR_NEWER
|
|
duringSceneGui
|
|
#else
|
|
onSceneGUIDelegate
|
|
#endif
|
|
+= onScene;
|
|
}
|
|
|
|
public override void OnDisable()
|
|
{
|
|
SceneView.
|
|
#if UNITY_2019_1_OR_NEWER
|
|
duringSceneGui
|
|
#else
|
|
onSceneGUIDelegate
|
|
#endif
|
|
-= onScene;
|
|
base.OnDisable();
|
|
}
|
|
|
|
/*! \endcond */
|
|
#endregion
|
|
|
|
#region ### Public Static Methods ###
|
|
#endregion
|
|
|
|
#region ### Public Methods ###
|
|
|
|
#if UNITY_2021_2_OR_NEWER
|
|
protected new virtual void OnSceneGUI()
|
|
#else
|
|
protected virtual void OnSceneGUI()
|
|
#endif
|
|
{
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ### Privates & Internals ###
|
|
/*! \cond PRIVATE */
|
|
|
|
void onScene(SceneView view)
|
|
{
|
|
if (EditorApplication.isCompiling)
|
|
{
|
|
SceneView.
|
|
#if UNITY_2019_1_OR_NEWER
|
|
duringSceneGui
|
|
#else
|
|
onSceneGUIDelegate
|
|
#endif
|
|
-= onScene;
|
|
Close();
|
|
GUIUtility.ExitGUI();
|
|
}
|
|
if (view == this)
|
|
OnSceneGUI();
|
|
}
|
|
|
|
void getInternals()
|
|
{
|
|
mStateField = GetType().FieldByName("m_SceneViewState", true, true);
|
|
}
|
|
|
|
|
|
|
|
/*! \endcond */
|
|
#endregion
|
|
|
|
}
|
|
}
|