275 lines
9.0 KiB
C#
275 lines
9.0 KiB
C#
using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
namespace AiryUI
|
|
{
|
|
public class MainWindow : EditorWindow
|
|
{
|
|
|
|
|
|
private static EditorWindow window;
|
|
private GUIStyle buttonContentStyle;
|
|
private Vector2 windowScroll;
|
|
|
|
|
|
[MenuItem ( "Airy UI/Main Window" , priority = 0 )]
|
|
private static void ShowWindow ()
|
|
{
|
|
window = GetWindow<MainWindow> ( "Airy UI" );
|
|
window.Show ();
|
|
|
|
window.maxSize = new Vector2 ( 370 , 650 );
|
|
window.minSize = new Vector2 ( 370 , 620 );
|
|
}
|
|
|
|
|
|
private void OnGUI ()
|
|
{
|
|
windowScroll = EditorGUILayout.BeginScrollView ( windowScroll , false , false );
|
|
|
|
GUILayout.Space ( 20 );
|
|
|
|
DrawAnimationManager_BUTTONS ();
|
|
|
|
DrawAnimatedElement_BUTTONS ();
|
|
|
|
DrawBackBtn_BUTTONS ();
|
|
|
|
DrawRateBox ();
|
|
|
|
DrawYoutube ();
|
|
|
|
EditorGUILayout.EndScrollView ();
|
|
}
|
|
|
|
|
|
private void WindowTitle_LABEL ()
|
|
{
|
|
GUI.color = Color.white;
|
|
|
|
|
|
GUILayout.Space ( 10 );
|
|
|
|
var titleLabelStyle = new GUIStyle ( GUI.skin.label ) { alignment = TextAnchor.MiddleLeft , fontSize = 25 , fontStyle = FontStyle.Bold , fixedHeight = 50 };
|
|
|
|
EditorGUILayout.LabelField ( "Airy UI Main Window" , titleLabelStyle );
|
|
GUILayout.Space ( 50 );
|
|
}
|
|
|
|
|
|
private void DrawAnimationManager_BUTTONS ()
|
|
{
|
|
SetButtonStyle ( new Color ( 0.48f , 0.56f , 1 ) );
|
|
|
|
GUIContent buttonContent = new GUIContent ( " Add Animated Elements Group" , SetIcon ( "manager_add.png" ) );
|
|
if ( GUILayout.Button ( buttonContent , buttonContentStyle ) )
|
|
{
|
|
foreach ( GameObject g in Selection.gameObjects )
|
|
{
|
|
Undo.AddComponent<AnimatedElementsGroup> ( g );
|
|
}
|
|
}
|
|
|
|
|
|
buttonContent = new GUIContent ( " Remove Animated Elements Group" , SetIcon ( "manager_remove.png" ) );
|
|
if ( GUILayout.Button ( buttonContent , buttonContentStyle ) )
|
|
{
|
|
foreach ( GameObject g in Selection.gameObjects )
|
|
{
|
|
if ( g.GetComponent<AnimatedElementsGroup> () != null )
|
|
{
|
|
Undo.DestroyObjectImmediate ( g.GetComponent<AnimatedElementsGroup> () );
|
|
}
|
|
}
|
|
}
|
|
|
|
GUILayout.Space ( 20 );
|
|
|
|
}
|
|
|
|
|
|
private void DrawAnimatedElement_BUTTONS ()
|
|
{
|
|
SetButtonStyle ( new Color ( 1 , 0.29f , 0.74f ) );
|
|
|
|
GUIContent buttonContent = new GUIContent ( " Add Animated Element" , SetIcon ( "animation_add.png" ) );
|
|
if ( GUILayout.Button ( buttonContent , buttonContentStyle ) )
|
|
{
|
|
foreach ( GameObject g in Selection.gameObjects )
|
|
{
|
|
Undo.AddComponent<AnimatedElement> ( g );
|
|
}
|
|
}
|
|
|
|
|
|
buttonContent = new GUIContent ( " Add Custom Animated Element" , SetIcon ( "c_animation_add.png" ) );
|
|
if ( GUILayout.Button ( buttonContent , buttonContentStyle ) )
|
|
{
|
|
foreach ( GameObject g in Selection.gameObjects )
|
|
{
|
|
if ( g.GetComponent<CustomAnimatedElement> () == null )
|
|
{
|
|
Undo.AddComponent<CustomAnimatedElement> ( g );
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
buttonContent = new GUIContent ( " Remove Animated Element" , SetIcon ( "animation_remove.png" ) );
|
|
if ( GUILayout.Button ( buttonContent , buttonContentStyle ) )
|
|
{
|
|
foreach ( GameObject g in Selection.gameObjects )
|
|
{
|
|
Undo.RecordObject ( g , "Remove Animated Element" );
|
|
if ( g.GetComponent<AnimatedElement> () != null )
|
|
Undo.DestroyObjectImmediate ( g.GetComponent<AnimatedElement> () );
|
|
|
|
if ( g.GetComponent<CustomAnimatedElement> () != null )
|
|
Undo.DestroyObjectImmediate ( g.GetComponent<CustomAnimatedElement> () );
|
|
}
|
|
}
|
|
|
|
GUILayout.Space ( 20 );
|
|
}
|
|
|
|
|
|
|
|
private void DrawBackBtn_BUTTONS ()
|
|
{
|
|
SetButtonStyle ( new Color ( 1 , 0.52f , 0.28f ) );
|
|
|
|
|
|
GUIContent buttonContent = new GUIContent ( " Add Esc Button" , SetIcon ( "esc_add.png" ) );
|
|
if ( GUILayout.Button ( buttonContent , buttonContentStyle ) )
|
|
{
|
|
foreach ( GameObject g in Selection.gameObjects )
|
|
{
|
|
if ( g.GetComponent<EscCloseButton> () == null )
|
|
{
|
|
Undo.AddComponent<EscCloseButton> ( g );
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
buttonContent = new GUIContent ( " Remove Esc Button" , SetIcon ( "esc_remove.png" ) );
|
|
if ( GUILayout.Button ( buttonContent , buttonContentStyle ) )
|
|
{
|
|
foreach ( GameObject g in Selection.gameObjects )
|
|
{
|
|
if ( g.GetComponent<EscCloseButton> () != null )
|
|
{
|
|
Undo.DestroyObjectImmediate ( g.GetComponent<EscCloseButton> () );
|
|
}
|
|
}
|
|
}
|
|
|
|
GUILayout.Space ( 20 );
|
|
|
|
SetButtonStyle ( new Color ( 1 , 0.38f , 0.28f ) );
|
|
|
|
|
|
buttonContent = new GUIContent ( " Add UI Close Button" , SetIcon ( "back_add.png" ) );
|
|
if ( GUILayout.Button ( buttonContent , buttonContentStyle ) )
|
|
{
|
|
foreach ( GameObject g in Selection.gameObjects )
|
|
{
|
|
if ( g.GetComponent<UICloseButton> () == null )
|
|
{
|
|
Undo.AddComponent<UICloseButton> ( g );
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
buttonContent = new GUIContent ( " Remove UI Close Button" , SetIcon ( "back_remove.png" ) );
|
|
if ( GUILayout.Button ( buttonContent , buttonContentStyle ) )
|
|
{
|
|
foreach ( GameObject g in Selection.gameObjects )
|
|
{
|
|
if ( g.GetComponent<UICloseButton> () != null )
|
|
{
|
|
Undo.DestroyObjectImmediate ( g.GetComponent<UICloseButton> () );
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
GUILayout.Space ( 20 );
|
|
}
|
|
|
|
|
|
|
|
[MenuItem ( "Airy UI/Rate On Asset Store" , priority = 15 )]
|
|
public static void RateOnAssetStore ()
|
|
{
|
|
Application.OpenURL ( "https://assetstore.unity.com/packages/tools/gui/airy-ui-2-easy-ui-animation-135898#reviews" );
|
|
}
|
|
|
|
|
|
[MenuItem ( "Airy UI/Suggest | Report Bug" , priority = 16 )]
|
|
public static void ReportBug ()
|
|
{
|
|
Application.OpenURL ( "https://forms.gle/4a9BU3C9ScP4XBoS8" );
|
|
}
|
|
|
|
|
|
[MenuItem ( "Airy UI/My Youtube Channel" , priority = 36 )]
|
|
public static void YoutubeChannel ()
|
|
{
|
|
Application.OpenURL ( "https://youtube.com/ahmedsabrygamedev" );
|
|
}
|
|
|
|
|
|
private void DrawRateBox ()
|
|
{
|
|
GUILayout.Label ( "If you like Airy UI, Please Rate it On Asset Store ♡" );
|
|
|
|
SetButtonStyle ( new Color ( 0.317f , 1 , 0.43f ) , 30 );
|
|
|
|
GUIContent buttonContent = new GUIContent ( " Rate ♡" , SetIcon ( "asset_store.png" ) );
|
|
|
|
if ( GUILayout.Button ( buttonContent , buttonContentStyle ) )
|
|
Application.OpenURL ( "https://assetstore.unity.com/packages/tools/gui/airy-ui-2-easy-ui-animation-135898#reviews" );
|
|
|
|
GUILayout.Space ( 10 );
|
|
}
|
|
|
|
|
|
private void DrawYoutube ()
|
|
{
|
|
GUILayout.Label ( "And also, take a visit to my GameDev Youtube channel" );
|
|
|
|
SetButtonStyle ( new Color ( 0.31f , 0.51f , 1 ) , 30 );
|
|
|
|
GUIContent buttonContent = new GUIContent ( " Visit ♡" , SetIcon ( "youtube.png" ) );
|
|
|
|
if ( GUILayout.Button ( buttonContent , buttonContentStyle ) )
|
|
Application.OpenURL ( "https://youtube.com/ahmedsabrygamedev" );
|
|
}
|
|
|
|
|
|
private void SetButtonStyle ( Color backgroundColor , float height = 40 )
|
|
{
|
|
GUI.backgroundColor = backgroundColor;
|
|
|
|
buttonContentStyle = new GUIStyle ( GUI.skin.button );
|
|
|
|
buttonContentStyle.alignment = TextAnchor.MiddleLeft;
|
|
buttonContentStyle.normal.textColor = Color.white;
|
|
buttonContentStyle.hover.textColor = Color.yellow;
|
|
buttonContentStyle.fixedHeight = height;
|
|
buttonContentStyle.fixedWidth = 361;
|
|
buttonContentStyle.fontSize = 17;
|
|
buttonContentStyle.fontStyle = FontStyle.Bold;
|
|
}
|
|
|
|
|
|
private Texture2D SetIcon ( string icon )
|
|
{
|
|
Texture2D buttonIcon = AssetDatabase.LoadAssetAtPath<Texture2D> ( "Assets/Airy UI/Sprites/Icons/" + icon );
|
|
|
|
return buttonIcon;
|
|
}
|
|
}
|
|
} |