# unity-attributes **Repository Path**: ObjOne/unity-attributes ## Basic Information - **Project Name**: unity-attributes - **Description**: unity 轻量级 Inspector 属性扩展 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-17 - **Last Updated**: 2025-11-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ℹ️ Features * Collection of general use drawer and decorator attributes. * Stripped in production: `[Conditional("UNITY_EDITOR")]` * 🤞 Reasonably lightweight.

# 📦 Install 1. Open Package Manager 2. Paste GitHub URL:\ `https://github.com/Smidgens/unity-attributes.git#`
# 🚀 Usage ### 🟢 Decorators
📝 BoxHeader
```cs [BoxHeader("Example Header")] [TextArea] public string documentedField; ```
📝 BoxComment
```cs [BoxComment("Some information about bla")] [TextArea] public string documentedField; ```
📝 BoxLink
```cs [BoxLink("Documentation", "https://en.wikipedia.org/wiki/Slartibartfast")] [TextArea] public string documentedField; ```
🔳 StaticAction
```cs class StaticGreets { public static void SayHi() { Debug.Log("Hello, wurst!"); } public static void LogValue(int v) { Debug.Log("Your value is: " + v); } } [StaticAction("Say Hi", "SayHi", typeof(StaticGreets))] [StaticAction("Log 10", "LogValue", typeof(StaticGreets), 10)] public string staticActionField; ```
### 🟠 Property Drawers
📏 Inline
```cs [System.Serializable] public struct T1 { public string name; public Texture2D icon; } [Inline] public Vector3 inlinedVector; [FieldSize("name", 40f)] [Inline] public T1 inlinedCustom; ```
📏 Expand
```cs [Serializable] public struct T1 { public string name; public Texture2D icon; } [Serializable] public struct T2 { public int someValue; public T1 nested; } [Expand] public T1 expanded1; [Expand] public T2 expanded2; ```
🔘 Tabs
```cs [System.Serializable] struct ToggleData { public bool v1,v2,v3; } [Tabs] public ToggleData options; ``` ```cs [System.Flags] enum Options { Item1 = 1, Item2 = 2, Item3 = 4, } [Tabs] public Options options; ```
🔘 Switch
```cs [Switch] public bool switch1; [Switch("Off", "On")] public bool switch2; [Switch("Disabled", "Enabled")] public bool switch3; ``` ```cs [System.Flags] enum Options { Item1 = 1, Item2 = 2, Item3 = 4, } [Switch] public Options options; ```
🎚️ Slider
```cs [Slider(1f,10f,1)] public float sliderPrecision; [Slider(1f,10f,0.5f)] public float sliderStep; [Slider(1,10)] public int sliderInt; ```
🎚️ Slider01
```cs [Slider01] public float slider01; ```
🎨 HexColor
```cs [HexColor] public string hexColor = "#f00"; ```
🔎 SearchType

```cs [SearchType] public string anyType; // only show component types [SearchType(baseTypes = new Type[]{ typeof(Component) })] public string componentType; // only show static classes [SearchType(onlyStatic = true)] public string staticType; // only show system types [SearchType(assemblies = new string[]{ "mscorlib" })] public string systemType; ```
🔻 Dropdown__
```cs [DropdownString("option1", "option2")] public string _string; [DropdownFloat(0.5f, 1.2f, 2.4f)] public float _float; [DropdownColor("red", "blue", "cyan")] public Color _color; [DropdownBool("Off", "On")] public bool _bool; [DropdownInt(0, 10)] public int _int; [DropdownAsset("Assets/Demo/")] public Texture2D _texture; ```
🔻 Layer
```cs [Layer] public int _layer; ```
🔻 SortLayer
```cs [SortLayer] public int _sortingLayer; ```
🔻 Tag
```cs [Tag] public string _tag; ```
🔻 BuildScene
```cs [BuildScene] public string scenePath; [BuildScene] public int sceneIndex; ```
🔻 AnimatorParameter
```cs public Animator myAnimator; [AnimatorParameter("myAnimator")] public string parameterName; [AnimatorParameter("myAnimator")] public int parameterIndex; ```
🔻 RendererMaterial
```cs public Renderer myRenderer; [AnimatorParameter("myRenderer")] public int materialIndex ```
🔻 BlendShape
```cs public SkinnedMeshRenderer myRenderer; [AnimatorParameter("myRenderer")] public string blendShapeName [AnimatorParameter("myRenderer")] public int blendShapeIndex ```
### 🔵 Modifiers
🔳 FieldAction
```cs [System.Serializable] internal class OwnerOfFunctions { public int myValue = 10; public void SetMyValue(int v) { myValue = v; } public void CallMe() { Debug.Log("Yay!"); } public void CallMeAsWell() { Debug.Log("OMG YAY"); } } class MyScript : MonoBehaviour { [FieldAction("Action 1", "CallMe")] [FieldAction("Action 2", "CallMeAsWell")] [FieldAction("Set value: 100", "SetMyValue", 100, onlyPlayMode = true)] [FieldAction("Call Target", "ScriptMethod", callRoot = true)] [Expand] public OwnerOfFunctions fieldWithActions; private void ScriptMethod() { Debug.Log("Script method called!"); } } ```
📏 Indent
```cs [Indent(1)] [DefaultDrawer] public int iAmIndented; [Indent(2)] [DefaultDrawer] public int iAmMoreSo; ```