Hide If Group Attribute允許根據(jù)條件顯示或隱藏一組屬性干像。該屬性是組屬性,因此可以與其他組屬性組合筑煮,甚至可以用于顯示或隱藏整個組
有組準(zhǔn)定有層級内地,先說單層級,指定的名稱既是組的名稱碰缔,也是對應(yīng)屬性的名稱账劲,如果指定的屬性的值為true或者不為null,則隱藏對應(yīng)的組
public bool Toggle = true;
[HideIfGroup("Toggle")]
[BoxGroup("Toggle/Shown Box")]
public int A, B;
多層級的情況下金抡,組最后的名稱為指定屬性的名稱
[BoxGroup("Box")]
public InfoMessageType EnumField = InfoMessageType.Info;
[BoxGroup("Box")]
[HideIfGroup("Box/Toggle")]
public Vector3 X, Y;
也可以特別指定屬性的名稱
//要在隱藏組時使用的成員的名稱瀑焦。默認(rèn)為組的名稱,
//可以通過設(shè)置此屬性來覆蓋梗肝。
[ShowIfGroup("RectGroup", MemberName = "Toggle")]
public Rect Rect;
可以設(shè)置與指定屬性的匹配值榛瓮,如果匹配,則顯示
//與常規(guī)if屬性一樣巫击,HideIfGroup也支持指定值禀晓。
//您還可以將多個HideIfGroup屬性鏈接在一起,以實現(xiàn)更復(fù)雜的行為坝锰。
[HideIfGroup("Box/Toggle/EnumField", Value = InfoMessageType.Info)]
[BoxGroup("Box/Toggle/EnumField/Border", ShowLabel = true)]
public string Name;
完整示例代碼
using Sirenix.OdinInspector;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HideIfGroupAttributeExample : MonoBehaviour
{
public bool Toggle = true;
[HideIfGroup("Toggle")]
[BoxGroup("Toggle/Shown Box")]
public int A, B;
[BoxGroup("Box")]
public InfoMessageType EnumField = InfoMessageType.Info;
[BoxGroup("Box")]
[HideIfGroup("Box/Toggle")]
public Vector3 X, Y;
//與常規(guī)if屬性一樣粹懒,HideIfGroup也支持指定值。
//您還可以將多個HideIfGroup屬性鏈接在一起顷级,以實現(xiàn)更復(fù)雜的行為凫乖。
[HideIfGroup("Box/Toggle/EnumField", Value = InfoMessageType.Info)]
[BoxGroup("Box/Toggle/EnumField/Border", ShowLabel = true)]
public string Name;
[BoxGroup("Box/Toggle/EnumField/Border")]
public Vector3 Vector;
//要在隱藏組時使用的成員的名稱。默認(rèn)為組的名稱弓颈,
//可以通過設(shè)置此屬性來覆蓋拣凹。
[ShowIfGroup("RectGroup", MemberName = "Toggle")]
public Rect Rect;
}