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
|
//----------------------------------------------
// 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>
[CustomEditor(typeof(UIImageButton))]
public class UIImageButtonInspector : Editor
{
UIImageButton mButton;
UISprite mSprite;
/// <summary>
/// Atlas selection callback.
/// </summary>
void OnSelectAtlas (Object obj)
{
if (mButton.target != null)
{
NGUIEditorTools.RegisterUndo("Atlas Selection", mButton.target);
mButton.target.atlas = obj as UIAtlas;
mButton.target.MakePixelPerfect();
}
}
public override void OnInspectorGUI ()
{
NGUIEditorTools.SetLabelWidth(80f);
mButton = target as UIImageButton;
mSprite = EditorGUILayout.ObjectField("Sprite", mButton.target, typeof(UISprite), true) as UISprite;
if (mButton.target != mSprite)
{
NGUIEditorTools.RegisterUndo("Image Button Change", mButton);
mButton.target = mSprite;
if (mSprite != null) mSprite.spriteName = mButton.normalSprite;
}
if (mSprite != null)
{
ComponentSelector.Draw<UIAtlas>(mSprite.atlas, OnSelectAtlas, true);
if (mSprite.atlas != null)
{
NGUIEditorTools.DrawSpriteField("Normal", mSprite.atlas, mButton.normalSprite, OnNormal);
NGUIEditorTools.DrawSpriteField("Hover", mSprite.atlas, mButton.hoverSprite, OnHover);
NGUIEditorTools.DrawSpriteField("Pressed", mSprite.atlas, mButton.pressedSprite, OnPressed);
NGUIEditorTools.DrawSpriteField("Disabled", mSprite.atlas, mButton.disabledSprite, OnDisabled);
}
}
}
void OnNormal (string spriteName)
{
NGUIEditorTools.RegisterUndo("Image Button Change", mButton, mButton.gameObject, mSprite);
mButton.normalSprite = spriteName;
mSprite.spriteName = spriteName;
mSprite.MakePixelPerfect();
if (mButton.collider == null || (mButton.collider is BoxCollider)) NGUITools.AddWidgetCollider(mButton.gameObject);
Repaint();
}
void OnHover (string spriteName)
{
NGUIEditorTools.RegisterUndo("Image Button Change", mButton, mButton.gameObject, mSprite);
mButton.hoverSprite = spriteName;
Repaint();
}
void OnPressed (string spriteName)
{
NGUIEditorTools.RegisterUndo("Image Button Change", mButton, mButton.gameObject, mSprite);
mButton.pressedSprite = spriteName;
Repaint();
}
void OnDisabled(string spriteName)
{
NGUIEditorTools.RegisterUndo("Image Button Change", mButton, mButton.gameObject, mSprite);
mButton.disabledSprite = spriteName;
Repaint();
}
}
|