Skip to content

Commit 7603bc1

Browse files
committed
fixes & examples & easings
1 parent 6bdfd04 commit 7603bc1

Some content is hidden

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

43 files changed

+3677
-148
lines changed

Editor/CreateAdvancedPopup.cs

+13-4
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,28 @@ public static class CreateAdvancedPopup
1010
[MenuItem("GameObject/UI/Advanced Popup", false, 10)]
1111
private static void CreateNewAdvancedPopup()
1212
{
13-
GameObject newPopup = new GameObject("Advanced Popup");
13+
GameObject newPopup = new GameObject("Advanced Popup")
14+
{
15+
layer = LayerMask.NameToLayer("UI")
16+
};
1417
RectTransform rectTransform = newPopup.AddComponent<RectTransform>();
1518
newPopup.AddComponent<CanvasRenderer>();
1619
newPopup.AddComponent<Image>();
1720
AdvancedPopup popup = newPopup.AddComponent<AdvancedPopup>();
1821
popup.RootTransform = rectTransform;
19-
22+
23+
Canvas canvas = null;
2024
Transform parentTransform = Selection.activeTransform;
2125

22-
Canvas canvas = parentTransform.GetComponentInParent<Canvas>();
26+
if (parentTransform != null)
27+
canvas = parentTransform.GetComponentInParent<Canvas>();
28+
2329
if (canvas == null)
2430
{
25-
GameObject canvasObject = new GameObject("Canvas");
31+
GameObject canvasObject = new GameObject("Canvas")
32+
{
33+
layer = LayerMask.NameToLayer("UI")
34+
};
2635
canvas = canvasObject.AddComponent<Canvas>();
2736
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
2837
canvasObject.AddComponent<CanvasScaler>();

Editor/IAdvancedPopupEditor.cs

+66-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
using System.Linq;
12
using AdvancedPS.Core.System;
23
using AdvancedPS.Core.Utils;
4+
using AdvancedPS.Editor.Styles;
35
using UnityEditor;
46
using UnityEngine;
57

@@ -44,12 +46,18 @@ public override void OnInspectorGUI()
4446
}
4547
EditorGUILayout.EndHorizontal();
4648

47-
DrawDefaultInspectorExcept("PopupLayer", "m_Script");
49+
EditorGUILayout.BeginVertical(PopupSystemEditorStyles.backgroundStyle);
50+
DrawBoolPropertiesInGrid();
51+
EditorGUILayout.EndVertical();
52+
53+
DrawDefaultInspectorExcept(new string[] { "PopupLayer", "m_Script", "DeepPopups" }.Concat(GetBoolPropertyNames()).ToArray());
54+
55+
DrawDeepPopupsProperty();
4856

4957
serializedObject.ApplyModifiedProperties();
5058
}
51-
52-
private void DrawDefaultInspectorExcept(params string[] propertyNamesToExclude)
59+
60+
private void DrawDefaultInspectorExcept(string[] propertyNamesToExclude)
5361
{
5462
SerializedProperty property = serializedObject.GetIterator();
5563
property.NextVisible(true);
@@ -62,6 +70,61 @@ private void DrawDefaultInspectorExcept(params string[] propertyNamesToExclude)
6270
}
6371
while (property.NextVisible(false));
6472
}
73+
74+
private void DrawDeepPopupsProperty()
75+
{
76+
SerializedProperty deepPopupsProperty = serializedObject.FindProperty("DeepPopups");
77+
if (deepPopupsProperty != null)
78+
{
79+
EditorGUILayout.PropertyField(deepPopupsProperty, true);
80+
}
81+
}
82+
83+
private void DrawBoolPropertiesInGrid()
84+
{
85+
SerializedProperty property = serializedObject.GetIterator();
86+
property.NextVisible(true);
87+
88+
int columnCount = 2;
89+
int currentColumn = 0;
90+
91+
EditorGUILayout.BeginHorizontal();
92+
do
93+
{
94+
if (property.propertyType == SerializedPropertyType.Boolean)
95+
{
96+
EditorGUILayout.PropertyField(property, true);
97+
98+
currentColumn++;
99+
if (currentColumn >= columnCount)
100+
{
101+
EditorGUILayout.EndHorizontal();
102+
EditorGUILayout.BeginHorizontal();
103+
currentColumn = 0;
104+
}
105+
}
106+
}
107+
while (property.NextVisible(false));
108+
EditorGUILayout.EndHorizontal();
109+
}
110+
111+
private string[] GetBoolPropertyNames()
112+
{
113+
SerializedProperty property = serializedObject.GetIterator();
114+
property.NextVisible(true);
115+
var boolPropertyNames = new System.Collections.Generic.List<string>();
116+
117+
do
118+
{
119+
if (property.propertyType == SerializedPropertyType.Boolean)
120+
{
121+
boolPropertyNames.Add(property.name);
122+
}
123+
}
124+
while (property.NextVisible(false));
125+
126+
return boolPropertyNames.ToArray();
127+
}
65128

66129
protected override void OnHeaderGUI()
67130
{

Editor/MenuEditor/PopupSystemEditorStyles.cs

+14
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public static class PopupSystemEditorStyles
99
public static readonly GUIStyle NormalTabStyle;
1010
public static readonly GUIStyle ScrollViewStyle;
1111
public static readonly GUIStyle BoldButtonStyle;
12+
public static readonly GUIStyle backgroundStyle;
1213

1314
static PopupSystemEditorStyles()
1415
{
@@ -25,6 +26,19 @@ static PopupSystemEditorStyles()
2526
normalTexture.SetPixel(0, 0, Color.gray);
2627
normalTexture.Apply();
2728

29+
Texture2D backgroundTexture = new Texture2D(1, 1);
30+
backgroundTexture.SetPixel(0, 0, new Color(0.19f, 0.19f, 0.19f, 1f));
31+
backgroundTexture.Apply();
32+
33+
backgroundStyle = new GUIStyle
34+
{
35+
normal =
36+
{
37+
background = backgroundTexture
38+
},
39+
padding = new RectOffset(10, 10, 10, 10)
40+
};
41+
2842
SelectedTabStyle = new GUIStyle(GUI.skin.button)
2943
{
3044
fontStyle = FontStyle.Bold,

Samples~/Demo/Scripts/UI.meta Examples.meta

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Samples~/Demo.meta Examples/EasingShowcase.meta

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Examples/EasingShowcase/Prefabs.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!1 &828251024400926607
4+
GameObject:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
serializedVersion: 6
10+
m_Component:
11+
- component: {fileID: 828251024400926606}
12+
- component: {fileID: 828251024400926604}
13+
- component: {fileID: 828251024400926605}
14+
m_Layer: 5
15+
m_Name: Line
16+
m_TagString: Untagged
17+
m_Icon: {fileID: 0}
18+
m_NavMeshLayer: 0
19+
m_StaticEditorFlags: 0
20+
m_IsActive: 1
21+
--- !u!224 &828251024400926606
22+
RectTransform:
23+
m_ObjectHideFlags: 0
24+
m_CorrespondingSourceObject: {fileID: 0}
25+
m_PrefabInstance: {fileID: 0}
26+
m_PrefabAsset: {fileID: 0}
27+
m_GameObject: {fileID: 828251024400926607}
28+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
29+
m_LocalPosition: {x: 0, y: 0, z: 0}
30+
m_LocalScale: {x: 1, y: 1, z: 1}
31+
m_ConstrainProportionsScale: 0
32+
m_Children: []
33+
m_Father: {fileID: 828251025757245664}
34+
m_RootOrder: 1
35+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
36+
m_AnchorMin: {x: 0.5, y: 0}
37+
m_AnchorMax: {x: 0.5, y: 1}
38+
m_AnchoredPosition: {x: 0, y: -14}
39+
m_SizeDelta: {x: 1, y: -28}
40+
m_Pivot: {x: 0.5, y: 0.5}
41+
--- !u!222 &828251024400926604
42+
CanvasRenderer:
43+
m_ObjectHideFlags: 0
44+
m_CorrespondingSourceObject: {fileID: 0}
45+
m_PrefabInstance: {fileID: 0}
46+
m_PrefabAsset: {fileID: 0}
47+
m_GameObject: {fileID: 828251024400926607}
48+
m_CullTransparentMesh: 1
49+
--- !u!114 &828251024400926605
50+
MonoBehaviour:
51+
m_ObjectHideFlags: 0
52+
m_CorrespondingSourceObject: {fileID: 0}
53+
m_PrefabInstance: {fileID: 0}
54+
m_PrefabAsset: {fileID: 0}
55+
m_GameObject: {fileID: 828251024400926607}
56+
m_Enabled: 1
57+
m_EditorHideFlags: 0
58+
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
59+
m_Name:
60+
m_EditorClassIdentifier:
61+
m_Material: {fileID: 0}
62+
m_Color: {r: 1, g: 1, b: 1, a: 0.19607843}
63+
m_RaycastTarget: 1
64+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
65+
m_Maskable: 1
66+
m_OnCullStateChanged:
67+
m_PersistentCalls:
68+
m_Calls: []
69+
m_Sprite: {fileID: 0}
70+
m_Type: 0
71+
m_PreserveAspect: 0
72+
m_FillCenter: 1
73+
m_FillMethod: 4
74+
m_FillAmount: 1
75+
m_FillClockwise: 1
76+
m_FillOrigin: 0
77+
m_UseSpriteMesh: 0
78+
m_PixelsPerUnitMultiplier: 1
79+
--- !u!1 &828251025428608531
80+
GameObject:
81+
m_ObjectHideFlags: 0
82+
m_CorrespondingSourceObject: {fileID: 0}
83+
m_PrefabInstance: {fileID: 0}
84+
m_PrefabAsset: {fileID: 0}
85+
serializedVersion: 6
86+
m_Component:
87+
- component: {fileID: 828251025428608530}
88+
- component: {fileID: 828251025428608528}
89+
- component: {fileID: 828251025428608529}
90+
m_Layer: 5
91+
m_Name: Text
92+
m_TagString: Untagged
93+
m_Icon: {fileID: 0}
94+
m_NavMeshLayer: 0
95+
m_StaticEditorFlags: 0
96+
m_IsActive: 1
97+
--- !u!224 &828251025428608530
98+
RectTransform:
99+
m_ObjectHideFlags: 0
100+
m_CorrespondingSourceObject: {fileID: 0}
101+
m_PrefabInstance: {fileID: 0}
102+
m_PrefabAsset: {fileID: 0}
103+
m_GameObject: {fileID: 828251025428608531}
104+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
105+
m_LocalPosition: {x: 0, y: 0, z: 0}
106+
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
107+
m_ConstrainProportionsScale: 0
108+
m_Children: []
109+
m_Father: {fileID: 828251025757245664}
110+
m_RootOrder: 0
111+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
112+
m_AnchorMin: {x: 0, y: 1}
113+
m_AnchorMax: {x: 1, y: 1}
114+
m_AnchoredPosition: {x: 0, y: 0}
115+
m_SizeDelta: {x: 300, y: 91.31}
116+
m_Pivot: {x: 0.5, y: 1}
117+
--- !u!222 &828251025428608528
118+
CanvasRenderer:
119+
m_ObjectHideFlags: 0
120+
m_CorrespondingSourceObject: {fileID: 0}
121+
m_PrefabInstance: {fileID: 0}
122+
m_PrefabAsset: {fileID: 0}
123+
m_GameObject: {fileID: 828251025428608531}
124+
m_CullTransparentMesh: 1
125+
--- !u!114 &828251025428608529
126+
MonoBehaviour:
127+
m_ObjectHideFlags: 0
128+
m_CorrespondingSourceObject: {fileID: 0}
129+
m_PrefabInstance: {fileID: 0}
130+
m_PrefabAsset: {fileID: 0}
131+
m_GameObject: {fileID: 828251025428608531}
132+
m_Enabled: 1
133+
m_EditorHideFlags: 0
134+
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
135+
m_Name:
136+
m_EditorClassIdentifier:
137+
m_Material: {fileID: 0}
138+
m_Color: {r: 1, g: 1, b: 1, a: 0.78431374}
139+
m_RaycastTarget: 0
140+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
141+
m_Maskable: 0
142+
m_OnCullStateChanged:
143+
m_PersistentCalls:
144+
m_Calls: []
145+
m_FontData:
146+
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
147+
m_FontSize: 30
148+
m_FontStyle: 0
149+
m_BestFit: 0
150+
m_MinSize: 3
151+
m_MaxSize: 51
152+
m_Alignment: 4
153+
m_AlignByGeometry: 0
154+
m_RichText: 1
155+
m_HorizontalOverflow: 0
156+
m_VerticalOverflow: 0
157+
m_LineSpacing: 1
158+
m_Text: New Text
159+
--- !u!1 &828251025757245665
160+
GameObject:
161+
m_ObjectHideFlags: 0
162+
m_CorrespondingSourceObject: {fileID: 0}
163+
m_PrefabInstance: {fileID: 0}
164+
m_PrefabAsset: {fileID: 0}
165+
serializedVersion: 6
166+
m_Component:
167+
- component: {fileID: 828251025757245664}
168+
- component: {fileID: 828251025757245671}
169+
m_Layer: 5
170+
m_Name: InfoBlock
171+
m_TagString: Untagged
172+
m_Icon: {fileID: 0}
173+
m_NavMeshLayer: 0
174+
m_StaticEditorFlags: 0
175+
m_IsActive: 1
176+
--- !u!224 &828251025757245664
177+
RectTransform:
178+
m_ObjectHideFlags: 0
179+
m_CorrespondingSourceObject: {fileID: 0}
180+
m_PrefabInstance: {fileID: 0}
181+
m_PrefabAsset: {fileID: 0}
182+
m_GameObject: {fileID: 828251025757245665}
183+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
184+
m_LocalPosition: {x: 0, y: 0, z: 0}
185+
m_LocalScale: {x: 1, y: 1, z: 1}
186+
m_ConstrainProportionsScale: 0
187+
m_Children:
188+
- {fileID: 828251025428608530}
189+
- {fileID: 828251024400926606}
190+
m_Father: {fileID: 0}
191+
m_RootOrder: 0
192+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
193+
m_AnchorMin: {x: 0.5, y: 0.5}
194+
m_AnchorMax: {x: 0.5, y: 0.5}
195+
m_AnchoredPosition: {x: 0, y: -190}
196+
m_SizeDelta: {x: 10, y: 700}
197+
m_Pivot: {x: 0.5, y: 0.5}
198+
--- !u!114 &828251025757245671
199+
MonoBehaviour:
200+
m_ObjectHideFlags: 0
201+
m_CorrespondingSourceObject: {fileID: 0}
202+
m_PrefabInstance: {fileID: 0}
203+
m_PrefabAsset: {fileID: 0}
204+
m_GameObject: {fileID: 828251025757245665}
205+
m_Enabled: 1
206+
m_EditorHideFlags: 0
207+
m_Script: {fileID: 11500000, guid: ff9e6c8c25b5fd54e85b52ab5b3da469, type: 3}
208+
m_Name:
209+
m_EditorClassIdentifier:
210+
text: {fileID: 828251025428608529}

Examples/EasingShowcase/Prefabs/InfoBlock.prefab.meta

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)