Odin Inspector 系列教程 --- Hide If Group Attribute

Hide If Group Attribute允許根據條件顯示或隱藏一組屬性。該屬性是組屬性,因此可以與其他組屬性組合,甚至可以用于顯示或隱藏整個組

有組準定有層級,先說單層級,指定的名稱既是組的名稱,也是對應屬性的名稱,如果指定的屬性的值為true或者不為null,則隱藏對應的組
    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;
也可以特別指定屬性的名稱
    //要在隱藏組時使用的成員的名稱。默認為組的名稱,
    //可以通過設置此屬性來覆蓋。
    [ShowIfGroup("RectGroup", MemberName = "Toggle")]
    public Rect Rect;
可以設置與指定屬性的匹配值,如果匹配,則顯示
    //與常規if屬性一樣,HideIfGroup也支持指定值。
    //您還可以將多個HideIfGroup屬性鏈接在一起,以實現更復雜的行為。
    [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;

    //與常規if屬性一樣,HideIfGroup也支持指定值。
    //您還可以將多個HideIfGroup屬性鏈接在一起,以實現更復雜的行為。
    [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;

    //要在隱藏組時使用的成員的名稱。默認為組的名稱,
    //可以通過設置此屬性來覆蓋。
    [ShowIfGroup("RectGroup", MemberName = "Toggle")]
    public Rect Rect;
}


更多教程內容詳見:革命性Unity 編輯器擴展工具 --- Odin Inspector 系列教程

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容