ShowIfGroup允許根據(jù)條件顯示或隱藏一組屬性瞧剖。該屬性是組屬性肖揣,因此可以與其他組屬性組合民假,甚至可以用于顯示或隱藏整個(gè)組。
有組準(zhǔn)定有層級(jí)龙优,先說單層級(jí)羊异,指定的名稱既是組的名稱,也是對(duì)應(yīng)屬性的名稱彤断,如果指定的屬性的值為true或者不為null球化,則顯示對(duì)應(yīng)的組
public bool Toggle = true;
[ShowIfGroup("Toggle")]
[BoxGroup("Toggle/Shown Box")]
public int A, B;
多層級(jí)的情況下,組最后的名稱為指定屬性的名稱
[BoxGroup("Box")]
[ShowIfGroup("Box/Toggle")]
public Vector3 X, Y;
也可以特別指定屬性的名稱
// ShowIfGroup將默認(rèn)使用組的名稱瓦糟,
//但是您也可以使用MemberName屬性來覆蓋它筒愚。
[ShowIfGroup("RectGroup", MemberName = "Toggle")]
public Rect Rect;
可以設(shè)置與指定屬性的匹配值,如果匹配菩浙,則顯示
//與常規(guī)if屬性一樣巢掺,ShowIfGroup也支持指定值。
//您還可以將多個(gè)ShowIfGroup屬性鏈接在一起劲蜻,以實(shí)現(xiàn)更復(fù)雜的行為陆淀。
[ShowIfGroup("Box/Toggle/EnumField", Value = InfoMessageType.Info)]
[BoxGroup("Box/Toggle/EnumField/Border", ShowLabel = false)]
public string Name;
完整示例代碼
using Sirenix.OdinInspector;
using UnityEngine;
public class ShowIfGroupAttributeExample : MonoBehaviour
{
public bool Toggle = true;
[ShowIfGroup("Toggle")]
[BoxGroup("Toggle/Shown Box")]
public int A, B;
[BoxGroup("Box")]
public InfoMessageType EnumField = InfoMessageType.Info;
[BoxGroup("Box")]
[ShowIfGroup("Box/Toggle")]
public Vector3 X, Y;
//與常規(guī)if屬性一樣,ShowIfGroup也支持指定值先嬉。
//您還可以將多個(gè)ShowIfGroup屬性鏈接在一起轧苫,以實(shí)現(xiàn)更復(fù)雜的行為。
[ShowIfGroup("Box/Toggle/EnumField", Value = InfoMessageType.Info)]
[BoxGroup("Box/Toggle/EnumField/Border", ShowLabel = false)]
public string Name;
[BoxGroup("Box/Toggle/EnumField/Border")]
public Vector3 Vector;
// ShowIfGroup將默認(rèn)使用組的名稱疫蔓,
//但是您也可以使用MemberName屬性來覆蓋它含懊。
[ShowIfGroup("RectGroup", MemberName = "Toggle")]
public Rect Rect;
}