Skip to content

Commit d16c711

Browse files
committed
added scroll region to recorder window.
1 parent 9d69939 commit d16c711

File tree

1 file changed

+52
-40
lines changed

1 file changed

+52
-40
lines changed

source/FrameRecorder/Core/Editor/RecorderWindow.cs

Lines changed: 52 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ enum EState
2121

2222
RecorderWindowSettings m_WindowSettingsAsset;
2323

24-
public static void ShowAndPreselectCategory( string category )
24+
public static void ShowAndPreselectCategory(string category)
2525
{
2626
var window = GetWindow(typeof(RecorderWindow), false, "Recorder") as RecorderWindow;
2727

28-
if( RecordersInventory.recordersByCategory.ContainsKey(category) )
28+
if (RecordersInventory.recordersByCategory.ContainsKey(category))
2929
window.m_StartingCategory = category;
3030
}
3131

@@ -35,64 +35,76 @@ public void OnEnable()
3535
}
3636

3737
DateTime m_LastRepaint = DateTime.MinValue;
38+
3839
protected void Update()
3940
{
40-
if( m_State == EState.Recording && (DateTime.Now - m_LastRepaint).TotalMilliseconds > 50)
41+
if (m_State == EState.Recording && (DateTime.Now - m_LastRepaint).TotalMilliseconds > 50)
4142
{
4243
Repaint();
4344
}
4445
}
4546

47+
48+
Vector2 m_ScrollPos;
49+
4650
public void OnGUI()
4751
{
48-
m_LastRepaint = DateTime.Now;
49-
50-
// Bug? work arround: on Stop play, Enable is not called.
51-
if (m_Editor != null && m_Editor.target == null)
52+
m_ScrollPos = EditorGUILayout.BeginScrollView(m_ScrollPos);
53+
try
5254
{
53-
UnityHelpers.Destroy(m_Editor);
54-
m_Editor = null;
55-
m_recorderSelector = null;
56-
}
55+
m_LastRepaint = DateTime.Now;
5756

58-
if (m_recorderSelector == null)
59-
{
60-
if (m_WindowSettingsAsset == null)
57+
// Bug? work arround: on Stop play, Enable is not called.
58+
if (m_Editor != null && m_Editor.target == null)
6159
{
62-
var candidates = AssetDatabase.FindAssets("t:RecorderWindowSettings");
63-
if (candidates.Length > 0)
64-
{
65-
var path = AssetDatabase.GUIDToAssetPath(candidates[0]);
66-
m_WindowSettingsAsset = AssetDatabase.LoadAssetAtPath<RecorderWindowSettings>(path);
67-
}
68-
else
69-
{
70-
m_WindowSettingsAsset = ScriptableObject.CreateInstance<RecorderWindowSettings>();
71-
AssetDatabase.CreateAsset(m_WindowSettingsAsset, "Assets/FrameRecordingSettings.asset");
72-
AssetDatabase.SaveAssets();
73-
}
60+
UnityHelpers.Destroy(m_Editor);
61+
m_Editor = null;
62+
m_recorderSelector = null;
7463
}
7564

76-
m_recorderSelector = new RecorderSelector(OnRecorderSelected, true );
77-
m_recorderSelector.Init( m_WindowSettingsAsset.m_Settings, m_StartingCategory);
78-
}
65+
if (m_recorderSelector == null)
66+
{
67+
if (m_WindowSettingsAsset == null)
68+
{
69+
var candidates = AssetDatabase.FindAssets("t:RecorderWindowSettings");
70+
if (candidates.Length > 0)
71+
{
72+
var path = AssetDatabase.GUIDToAssetPath(candidates[0]);
73+
m_WindowSettingsAsset = AssetDatabase.LoadAssetAtPath<RecorderWindowSettings>(path);
74+
}
75+
else
76+
{
77+
m_WindowSettingsAsset = ScriptableObject.CreateInstance<RecorderWindowSettings>();
78+
AssetDatabase.CreateAsset(m_WindowSettingsAsset, "Assets/FrameRecordingSettings.asset");
79+
AssetDatabase.SaveAssets();
80+
}
81+
}
7982

80-
if (m_State == EState.WaitingForPlayModeToStartRecording && EditorApplication.isPlaying)
81-
DelayedStartRecording();
83+
m_recorderSelector = new RecorderSelector(OnRecorderSelected, true);
84+
m_recorderSelector.Init(m_WindowSettingsAsset.m_Settings, m_StartingCategory);
85+
}
8286

83-
using (new EditorGUI.DisabledScope(EditorApplication.isPlaying))
84-
m_recorderSelector.OnGui();
87+
if (m_State == EState.WaitingForPlayModeToStartRecording && EditorApplication.isPlaying)
88+
DelayedStartRecording();
8589

86-
if (m_Editor != null)
87-
{
88-
m_Editor.showBounds = true;
8990
using (new EditorGUI.DisabledScope(EditorApplication.isPlaying))
91+
m_recorderSelector.OnGui();
92+
93+
if (m_Editor != null)
9094
{
91-
EditorGUILayout.Separator();
92-
m_Editor.OnInspectorGUI();
93-
EditorGUILayout.Separator();
95+
m_Editor.showBounds = true;
96+
using (new EditorGUI.DisabledScope(EditorApplication.isPlaying))
97+
{
98+
EditorGUILayout.Separator();
99+
m_Editor.OnInspectorGUI();
100+
EditorGUILayout.Separator();
101+
}
102+
RecordButtonOnGui();
94103
}
95-
RecordButtonOnGui();
104+
}
105+
finally
106+
{
107+
EditorGUILayout.EndScrollView();
96108
}
97109
}
98110

0 commit comments

Comments
 (0)