Skip to content

Commit 0d79e92

Browse files
committed
Refactored project structure and added example folder
1 parent b893c42 commit 0d79e92

45 files changed

Lines changed: 290 additions & 132 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Assets/-UViewSettings.asset

4.18 KB
Binary file not shown.
4.16 KB
Binary file not shown.

Scripts/AbstractView.cs renamed to Assets/Plugins/UView/Scripts/AbstractView.cs

File renamed without changes.

Scripts/Editor/CreateViewWindow.cs renamed to Assets/Plugins/UView/Scripts/Editor/CreateViewWindow.cs

File renamed without changes.

Scripts/Editor/UViewCreator.cs renamed to Assets/Plugins/UView/Scripts/Editor/UViewCreator.cs

File renamed without changes.

Scripts/Editor/UViewEditorUtils.cs renamed to Assets/Plugins/UView/Scripts/Editor/UViewEditorUtils.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public static class UViewEditorUtils
2121

2222
public const string kSettingsPath = "Assets/";
2323
public const string kSettingsAssetName = "-UViewSettings.asset";
24+
public const string kDefaultSettingsPath = "Assets/Plugins/UView/DefaultSettings.asset";
2425
public const string kResources = "/Resources/";
2526

2627
[MenuItem("GameObject/Create Other/UView/ViewController")]
@@ -50,12 +51,12 @@ public static void MenuOpenManagerWindow()
5051

5152
public static UViewSettings GetSettings()
5253
{
53-
string settingsPath = string.Concat(UViewEditorUtils.kSettingsPath,UViewEditorUtils.kSettingsAssetName);
54+
string settingsPath = Path.Combine(UViewEditorUtils.kSettingsPath,UViewEditorUtils.kSettingsAssetName);
5455
UViewSettings settings = AssetDatabase.LoadAssetAtPath<UViewSettings>(settingsPath);
5556

5657
if(settings==null){
57-
settings = ScriptableObject.CreateInstance<UViewSettings>();
58-
settings.RestoreDefaults();
58+
UViewSettings defaults = AssetDatabase.LoadAssetAtPath<UViewSettings>(UViewEditorUtils.kDefaultSettingsPath);
59+
settings = GameObject.Instantiate<UViewSettings>(defaults);
5960

6061
if(!Directory.Exists(UViewEditorUtils.kSettingsPath)) Directory.CreateDirectory(UViewEditorUtils.kSettingsPath);
6162

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
using UnityEngine;
2+
using UnityEditor;
3+
using System.Collections;
4+
5+
/**
6+
* UViewSettings.cs
7+
* Author: Luke Holland (http://lukeholland.me/)
8+
*/
9+
10+
namespace UView {
11+
12+
public class UViewSettings : ScriptableObject
13+
{
14+
15+
private const string kDefaultPrefabPath = "Assets/Resources/View";
16+
private const string kDefaultScriptPath = "Assets/Scripts/View";
17+
18+
public string prefabsPath;
19+
public string scriptsPath;
20+
public TextAsset scriptTemplate;
21+
public Transform prefabTemplate;
22+
23+
public void RestoreDefaults()
24+
{
25+
prefabsPath = kDefaultPrefabPath;
26+
scriptsPath = kDefaultScriptPath;
27+
}
28+
29+
}
30+
31+
[CustomEditor(typeof(UViewSettings))]
32+
public class UViewSettingsEditor : Editor
33+
{
34+
35+
private UViewSettings _settings;
36+
private SerializedProperty _propertySettingsPrefabsPath;
37+
private SerializedProperty _propertySettingsScriptsPath;
38+
private SerializedProperty _propertySettingsScriptTemplate;
39+
private SerializedProperty _propertySettingsPrefabTemplate;
40+
41+
protected void OnEnable()
42+
{
43+
_settings = target as UViewSettings;
44+
_propertySettingsPrefabsPath = serializedObject.FindProperty("prefabsPath");
45+
_propertySettingsScriptsPath = serializedObject.FindProperty("scriptsPath");
46+
_propertySettingsScriptTemplate = serializedObject.FindProperty("scriptTemplate");
47+
_propertySettingsPrefabTemplate = serializedObject.FindProperty("prefabTemplate");
48+
}
49+
50+
public override void OnInspectorGUI ()
51+
{
52+
serializedObject.Update();
53+
54+
_propertySettingsPrefabsPath.stringValue = UViewEditorUtils.LayoutPathSelector(_propertySettingsPrefabsPath.stringValue,"Default Prefabs Path");
55+
56+
if(!UViewEditorUtils.ValidateResourcePath(_propertySettingsPrefabsPath.stringValue)){
57+
EditorGUILayout.HelpBox(string.Format("Prefabs should be stored in a '{0}' folder",UViewEditorUtils.kResources),MessageType.Error);
58+
}
59+
60+
_propertySettingsScriptsPath.stringValue = UViewEditorUtils.LayoutPathSelector(_propertySettingsScriptsPath.stringValue,"Default Scripts Path");
61+
62+
EditorGUILayout.PropertyField(_propertySettingsScriptTemplate);
63+
EditorGUILayout.PropertyField(_propertySettingsPrefabTemplate);
64+
65+
EditorGUILayout.Space();
66+
EditorGUILayout.Space();
67+
68+
EditorGUILayout.BeginHorizontal();
69+
70+
GUILayout.FlexibleSpace();
71+
72+
if(GUILayout.Button("Reset to Defaults",GUILayout.Width(120))){
73+
_settings.RestoreDefaults();
74+
}
75+
76+
EditorGUILayout.EndHorizontal();
77+
78+
serializedObject.ApplyModifiedProperties();
79+
}
80+
81+
}
82+
83+
}

Scripts/Editor/UViewWindow.cs renamed to Assets/Plugins/UView/Scripts/Editor/UViewWindow.cs

Lines changed: 5 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,15 @@ public class UViewWindow : EditorWindow
1111
private int _tabIndex;
1212
private Vector2 _scroll;
1313
private ViewController _viewController;
14-
private Editor _viewControllerEditor;
15-
1614
private UViewSettings _settings;
17-
private SerializedObject _settingsObject;
18-
19-
private SerializedProperty _propertySettingsPrefabsPath;
20-
private SerializedProperty _propertySettingsScriptsPath;
21-
private SerializedProperty _propertySettingsScriptTemplate;
22-
private SerializedProperty _propertySettingsPrefabTemplate;
15+
private Editor _viewControllerEditor;
16+
private Editor _settingsEditor;
2317

2418
protected void OnEnable()
2519
{
2620
_tabIndex = 0;
2721

2822
_settings = UViewEditorUtils.GetSettings();
29-
_settingsObject = new SerializedObject(_settings);
30-
_propertySettingsPrefabsPath = _settingsObject.FindProperty("prefabsPath");
31-
_propertySettingsScriptsPath = _settingsObject.FindProperty("scriptsPath");
32-
_propertySettingsScriptTemplate = _settingsObject.FindProperty("scriptTemplate");
33-
_propertySettingsPrefabTemplate = _settingsObject.FindProperty("prefabTemplate");
3423

3524
EditorApplication.playmodeStateChanged += HandlePlayStateChanged;
3625
}
@@ -144,7 +133,9 @@ protected void OnGUI()
144133
}
145134

146135
} else {
147-
DrawSettingsGUI();
136+
if(_settingsEditor==null) _settingsEditor = Editor.CreateEditor(_settings);
137+
138+
_settingsEditor.OnInspectorGUI();
148139
}
149140

150141
EditorGUILayout.Space();
@@ -157,37 +148,6 @@ protected void OnGUI()
157148
EditorGUILayout.EndScrollView();
158149
}
159150

160-
private void DrawSettingsGUI()
161-
{
162-
_settingsObject.Update();
163-
164-
_propertySettingsPrefabsPath.stringValue = UViewEditorUtils.LayoutPathSelector(_propertySettingsPrefabsPath.stringValue,"Default Prefabs Path");
165-
166-
if(!UViewEditorUtils.ValidateResourcePath(_propertySettingsPrefabsPath.stringValue)){
167-
EditorGUILayout.HelpBox(string.Format("Prefabs should be stored in a '{0}' folder",UViewEditorUtils.kResources),MessageType.Error);
168-
}
169-
170-
_propertySettingsScriptsPath.stringValue = UViewEditorUtils.LayoutPathSelector(_propertySettingsScriptsPath.stringValue,"Default Scripts Path");
171-
172-
EditorGUILayout.PropertyField(_propertySettingsScriptTemplate);
173-
EditorGUILayout.PropertyField(_propertySettingsPrefabTemplate);
174-
175-
EditorGUILayout.Space();
176-
EditorGUILayout.Space();
177-
178-
EditorGUILayout.BeginHorizontal();
179-
180-
GUILayout.FlexibleSpace();
181-
182-
if(GUILayout.Button("Reset to Defaults",GUILayout.Width(120))){
183-
_settings.RestoreDefaults();
184-
}
185-
186-
EditorGUILayout.EndHorizontal();
187-
188-
_settingsObject.ApplyModifiedProperties();
189-
}
190-
191151
}
192152

193153
}

Scripts/Editor/ViewControllerEditor.cs renamed to Assets/Plugins/UView/Scripts/Editor/ViewControllerEditor.cs

File renamed without changes.

Scripts/Editor/ViewList.cs renamed to Assets/Plugins/UView/Scripts/Editor/ViewList.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ private void DrawElementCallback(Rect rect, int index, bool isActive, bool isFoc
7575
AbstractView viewAsset = AssetDatabase.LoadAssetAtPath<AbstractView>(assetPath);
7676
if(viewAsset!=null){
7777
AbstractView instance = PrefabUtility.InstantiatePrefab(viewAsset) as AbstractView;
78-
instance.gameObject.hideFlags = HideFlags.DontSaveInEditor;
7978
instance.SetParent(_propertyViewParent.objectReferenceValue as Transform,ViewDisplayMode.Overlay);
8079

8180
Selection.activeGameObject = instance.gameObject;

0 commit comments

Comments
 (0)