NudgeGUIElements
From Unify Community Wiki
(Difference between revisions)
Line 12: | Line 12: | ||
Place this script in ''YourProject/Assets/Editor/NudgeGUIElements.cs'' and menu items will automatically appear in the Custom menu after it is compiled. Then select one or more GUIText and/or GUITexture and select a nudge item in the menu i.e. "Custom/Nudge/Left Fast". | Place this script in ''YourProject/Assets/Editor/NudgeGUIElements.cs'' and menu items will automatically appear in the Custom menu after it is compiled. Then select one or more GUIText and/or GUITexture and select a nudge item in the menu i.e. "Custom/Nudge/Left Fast". | ||
− | ==C# - | + | ==C# - NudgeGUIElements.cs== |
<csharp>using UnityEngine; | <csharp>using UnityEngine; | ||
using UnityEditor; | using UnityEditor; |
Revision as of 17:59, 22 August 2007
Author: Jonathan Czeck (aarku)
Description
This script provides menu items to nudge the pixelInset of a GUITexture and the pixelOffset of a GUIText by 1 pixel or 10 pixels. This is useful for positioning user interfaces. It saves time because you don't have to repeatedly perform addition and subtraction on the pixelInset and pixelOffset of your GUI elements.
Usage
Place this script in YourProject/Assets/Editor/NudgeGUIElements.cs and menu items will automatically appear in the Custom menu after it is compiled. Then select one or more GUIText and/or GUITexture and select a nudge item in the menu i.e. "Custom/Nudge/Left Fast".
C# - NudgeGUIElements.cs
<csharp>using UnityEngine; using UnityEditor;
public class NudgeGUIElements : ScriptableObject {
[MenuItem ("Custom/Nudge GUI/Left ^j")] static void NudgeLeft() { Nudge(-1f, 0f); }
[MenuItem ("Custom/Nudge GUI/Left Fast ^#j")] static void NudgeLeftFast() { Nudge(-10f, 0f); }
[MenuItem ("Custom/Nudge GUI/Right ^l")] static void NudgeRight() { Nudge(1f, 0f); }
[MenuItem ("Custom/Nudge GUI/Right Fast ^#l")] static void NudgeRightFast() { Nudge(10f, 0f); }
[MenuItem ("Custom/Nudge GUI/Up ^o")] static void NudgeUp() { Nudge(0f, 1f); }
[MenuItem ("Custom/Nudge GUI/Up Fast ^#o")] static void NudgeUpFast() { Nudge(0f, 10f); }
[MenuItem ("Custom/Nudge GUI/Down ^k")] static void NudgeDown() { Nudge(0f, -1f); } [MenuItem ("Custom/Nudge GUI/Down Fast ^#k")] static void NudgeDownFast() { Nudge(0f, -10f); } static void Nudge(float x, float y) { // this probably could be thought out better Object[] objects = Selection.GetFiltered(typeof(GUITexture), SelectionMode.Deep | SelectionMode.Editable); foreach (GUITexture guiTexture in objects) { Rect pixelInset = guiTexture.pixelInset;
pixelInset.xMin += x; pixelInset.xMax += x; pixelInset.yMin += y; pixelInset.yMax += y;
guiTexture.pixelInset = pixelInset; } objects = Selection.GetFiltered(typeof(GUIText), SelectionMode.Deep | SelectionMode.Editable); foreach (GUIText guiText in objects) { Vector2 pixelOffset = guiText.pixelOffset;
pixelOffset.x += x; pixelOffset.y += y;
guiText.pixelOffset = pixelOffset; }
// Trick Editor into updating GameObject go = new GameObject(); DestroyImmediate( go ); }
} </csharp>