Nextrek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
//----------------------------------------------
// NGUI: Next-Gen UI kit
// Copyright © 2011-2013 Tasharen Entertainment
//----------------------------------------------
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
/// <summary>
/// Inspector class used to edit UISprites.
/// </summary>
[CanEditMultipleObjects]
[CustomEditor(typeof(UISprite))]
public class UISpriteInspector : UIWidgetInspector
{
/// <summary>
/// Atlas selection callback.
/// </summary>
void OnSelectAtlas (Object obj)
{
serializedObject.Update();
SerializedProperty sp = serializedObject.FindProperty("mAtlas");
sp.objectReferenceValue = obj;
serializedObject.ApplyModifiedProperties();
NGUISettings.atlas = obj as UIAtlas;
}
/// <summary>
/// Sprite selection callback function.
/// </summary>
void SelectSprite (string spriteName)
{
serializedObject.Update();
SerializedProperty sp = serializedObject.FindProperty("mSpriteName");
sp.stringValue = spriteName;
serializedObject.ApplyModifiedProperties();
NGUISettings.selectedSprite = spriteName;
}
/// <summary>
/// Draw the atlas and sprite selection fields.
/// </summary>
protected override bool DrawProperties ()
{
GUILayout.BeginHorizontal();
if (NGUIEditorTools.DrawPrefixButton("Atlas"))
ComponentSelector.Show<UIAtlas>(OnSelectAtlas);
SerializedProperty atlas = NGUIEditorTools.DrawProperty("", serializedObject, "mAtlas");
if (GUILayout.Button("Edit", GUILayout.Width(40f)))
{
if (atlas != null)
{
UIAtlas atl = atlas.objectReferenceValue as UIAtlas;
NGUISettings.atlas = atl;
NGUIEditorTools.Select(atl.gameObject);
}
}
GUILayout.EndHorizontal();
SerializedProperty sp = serializedObject.FindProperty("mSpriteName");
NGUIEditorTools.DrawAdvancedSpriteField(atlas.objectReferenceValue as UIAtlas, sp.stringValue, SelectSprite, false);
return true;
}
/// <summary>
/// Sprites's custom properties based on the type.
/// </summary>
protected override void DrawExtraProperties ()
{
GUILayout.Space(6f);
SerializedProperty sp = NGUIEditorTools.DrawProperty("Sprite Type", serializedObject, "mType");
EditorGUI.BeginDisabledGroup(sp.hasMultipleDifferentValues);
{
if ((UISprite.Type)sp.intValue == UISprite.Type.Sliced)
{
NGUIEditorTools.DrawProperty("Fill Center", serializedObject, "mFillCenter");
}
else if ((UISprite.Type)sp.intValue == UISprite.Type.Filled)
{
NGUIEditorTools.DrawProperty("Fill Dir", serializedObject, "mFillDirection");
GUILayout.BeginHorizontal();
GUILayout.Space(4f);
NGUIEditorTools.DrawProperty("Fill Amount", serializedObject, "mFillAmount");
GUILayout.Space(4f);
GUILayout.EndHorizontal();
NGUIEditorTools.DrawProperty("Invert Fill", serializedObject, "mInvert");
}
}
EditorGUI.EndDisabledGroup();
//GUI.changed = false;
//Vector4 draw = EditorGUILayout.Vector4Field("Draw Region", mWidget.drawRegion);
//if (GUI.changed)
//{
// NGUIEditorTools.RegisterUndo("Draw Region", mWidget);
// mWidget.drawRegion = draw;
//}
GUILayout.Space(4f);
}
/// <summary>
/// All widgets have a preview.
/// </summary>
public override bool HasPreviewGUI () { return !serializedObject.isEditingMultipleObjects; }
/// <summary>
/// Draw the sprite preview.
/// </summary>
public override void OnPreviewGUI (Rect rect, GUIStyle background)
{
UISprite sprite = target as UISprite;
if (sprite == null || !sprite.isValid) return;
Texture2D tex = sprite.mainTexture as Texture2D;
if (tex == null) return;
UISpriteData sd = sprite.atlas.GetSprite(sprite.spriteName);
NGUIEditorTools.DrawSprite(tex, rect, sd, sprite.color);
}
}
|
Revision |
Author |
Commited |
Message |
83
|
FMMortaroli
|
Tue 13 May, 2014 11:32:51 +0000 |
|