🦴

ちょっと便利になるUnityEditor Attribute

2021/12/24に公開

さんざん色んな人がこすってきたネタだろうけど、いろいろい知らなかったのでメモ

HelpURL

HelpURLAtttribute

[HelpURL("https://docs.unity3d.com/ScriptReference/HelpURLAttribute.html")]
public class SampleFieldAnnotations : MonoBehaviour
{}

unityのinspectorでcomponentをattachしたときに出る "?" マークをクリックすると、指定したURLに飛ぶ機能

?

AssetStoreで公開するscriptやossで作ったスクリプトのdocリンク貼ったりすると良さそう

HeaderAttribute

[Header("--- Header Attribute ---")] public int HP = 0;

boldの字体でsection分けできる.
inspectorのfieldが多いときとか良さそう.

header

Tooltip

TooltipAttribute

[Tooltip("help tooltip")] public int Help = 0;

inspectorでマウスオーバーしたときにtooltipを表示してくれる

tooltip

Min

MinAttribute

inspector経由でfloatを入力する際に、指定した値未満は入力できないようにする.
なぜかmaxはないという不思議.

[Min(1)] public float minValue;

min

Range

RangeAttribute

表示がスライダーになり、上限と加減を指定できる

[Range(0, 10)] public int range;

range

Space

SpaceAttribute

inspectorのproperty間にスペースを指定px挟む

[Space(30)] public string TextArea;

space

Multiline/TextArea

テキストを複数行で入力可能にしてくれる

MultilineAttribute
TextAreaAttribute

[TextArea(minLines: 1, maxLines: 3)] public string TextArea;
[Multiline(lines: 10)] public string MultiLineString;

textarea/multiline

multilineが固定行数の一方.
TextAreaは最小行数/最大行数が指定できる伸縮タイプ表示タイプ. オーバーしたときにはスクロールしてくれる.
個人的にはTextAreaのほうが使いやすいと感じた.

NonReorderable

NonReorderableAttribute

順番を入れ替えれない配列表示のときに利用する

[NonReorderable] public int[] nonReorderableArray;
public int[] reorderableArray;

non_reorderable

InspectorName

InspectorNameAttribute

enumでdropdown表示する際に別名で表示する

public SampleEnum sample;

public enum SampleEnum
{
    [InspectorName("0 bit")]
    None = 0,
    [InspectorName("1 bit")]
    One = 1,
}

inspector name

ColorUsage

ColorUsage

color pickerを表示するときにalphaとintensity(露出)の表示有無を指定できる

[ColorUsage(showAlpha: false, hdr: false)]
public Color color1;
[ColorUsage(showAlpha: true, hdr: true)]
public Color color2;

normal

hdr

Discussion