- Collection of general use drawer and decorator attributes.
- Stripped in production:
[Conditional("UNITY_EDITOR")]
- π€ Reasonably lightweight.
- Open Package Manager
- Paste GitHub URL:
https://github.com/Smidgens/unity-attributes.git#<version_tag>
π BoxComment
[BoxComment("Some information about bla")]
[TextArea]
public string documentedField;
π BoxLink
[BoxLink("Documentation", "https://en.wikipedia.org/wiki/Slartibartfast")]
[TextArea]
public string documentedField;
π³ StaticAction
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;
π Inline
[System.Serializable]
public struct T1
{
public string name;
public Texture2D icon;
}
[Inline]
public Vector3 inlinedVector;
[FieldSize("name", 40f)]
[Inline]
public T1 inlinedCustom;
π Expand
[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
[System.Serializable]
struct ToggleData
{
public bool v1,v2,v3;
}
[Tabs]
public ToggleData options;
[System.Flags]
enum Options
{
Item1 = 1,
Item2 = 2,
Item3 = 4,
}
[Tabs]
public Options options;
π Switch
[Switch]
public bool switch1;
[Switch("Off", "On")]
public bool switch2;
[Switch("Disabled", "Enabled")]
public bool switch3;
[System.Flags]
enum Options
{
Item1 = 1,
Item2 = 2,
Item3 = 4,
}
[Switch]
public Options options;
ποΈ Slider
[Slider(1f,10f,1)]
public float sliderPrecision;
[Slider(1f,10f,0.5f)]
public float sliderStep;
[Slider(1,10)]
public int sliderInt;
π SearchType
[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__
[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;
π» AnimatorParameter
public Animator myAnimator;
[AnimatorParameter("myAnimator")]
public string parameterName;
[AnimatorParameter("myAnimator")]
public int parameterIndex;
π» RendererMaterial
public Renderer myRenderer;
[AnimatorParameter("myRenderer")]
public int materialIndex
π» BlendShape
public SkinnedMeshRenderer myRenderer;
[AnimatorParameter("myRenderer")]
public string blendShapeName
[AnimatorParameter("myRenderer")]
public int blendShapeIndex
π³ FieldAction
[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!");
}
}