Odin Inspector 系列教程 --- Asset Selector Attribute

Asset Selector Attribute 特性用于:在對象字段旁邊添加一個小按鈕柏蘑,該按鈕將向用戶顯示資產(chǎn)下拉列表,以便從屬性中進行選擇规伐。

【AssetSelector】添加到對應的字段上即可
    [AssetSelector]
    public Material AnyAllMaterials;
    [AssetSelector]
    public Material[] ListOfAllMaterials;
【FlattenTreeView】是否開啟樹狀圖
    [PropertySpace(40)]
    [AssetSelector(FlattenTreeView = false)]//默認樹狀顯示
    public PhysicMaterial TreeView;
    [AssetSelector(FlattenTreeView = true)]//非默認樹狀顯示
    public PhysicMaterial NoTreeView;
【Paths】單路徑或多路徑查找
    [PropertySpace(40)]
    [AssetSelector(Paths = "Assets/TutorialAsset/ExampleScriptableObjects")]
    public ScriptableObject ScriptableObjectsFromFolder;
    [AssetSelector(Paths = "Assets/TutorialAsset/ExampleScriptableObjects|Assets/Plugins/Sirenix/Odin Inspector")]
    public ScriptableObject ScriptableObjectsFromMultipleFolders;
【Filter】自定義過濾條件
    [PropertySpace(40)]
    [AssetSelector(Filter = "New Animation t:AnimationClip l:自定義標簽")]
    public UnityEngine.Object AssetDatabaseSearchFilters;
【DisableListAddButtonBehaviour】開啟后加號不會出現(xiàn)樹形下拉條以彈窗形式出現(xiàn)
    [Title("輔助性功能")]
    [AssetSelector(DisableListAddButtonBehaviour = true)] //開啟后加號不會出現(xiàn)樹形下拉條以彈窗形式出現(xiàn)
    public List<GameObject> DisableListAddButtonBehaviour;
【DrawDropdownForListElements】控制已經(jīng)添加的Item是否含有下拉列表
    [PropertySpace(40)]
    [AssetSelector(DrawDropdownForListElements = false)]
    public List<GameObject> DisableListElementBehaviour_False;
    [AssetSelector(DrawDropdownForListElements = true)]
    public List<GameObject> DisableListElementBehaviour_True;
【ExcludeExistingValuesInList】去除已經(jīng)含有的Item
    [PropertySpace(40)]
    [AssetSelector(ExcludeExistingValuesInList = true)]
    public List<GameObject> ExcludeExistingValuesInList_True;
    [AssetSelector(ExcludeExistingValuesInList = false)]
    public List<GameObject> ExcludeExistingValuesInList_False;
【IsUniqueList】開啟列表勾選模式(這個關鍵字在Odin的很多特性中都有)
    [PropertySpace(40)]
    [AssetSelector(IsUniqueList = true)]
    public List<GameObject> DisableUniqueListBehaviour_True;
    [AssetSelector(IsUniqueList = false)]
    public List<GameObject> DisableUniqueListBehaviour_False;
【ExpandAllMenuItems】下拉列表是否強制展開
    [PropertySpace(40)]
    [AssetSelector(ExpandAllMenuItems = true)]//下拉條是否展開
    public List<GameObject> ExpandAllMenuItems_True;
    [AssetSelector(ExpandAllMenuItems = false)]
    public List<GameObject> ExpandAllMenuItems_False;
【DropdownTitle】下拉列表標題
    [PropertySpace(40)]
    [AssetSelector(DropdownTitle = "最定義下拉列表標題")]
    public List<GameObject> CustomDropdownTitle;
完整示例代碼
using UnityEngine;

using Sirenix.OdinInspector;
using System;
using System.Collections.Generic;
public class AssetSelectorAttributeExample : MonoBehaviour
{
    [AssetSelector]
    public Material AnyAllMaterials;
    [AssetSelector]
    public Material[] ListOfAllMaterials;

    [PropertySpace(40)]
    [AssetSelector(FlattenTreeView = false)]//默認樹狀顯示
    public PhysicMaterial TreeView;
    [AssetSelector(FlattenTreeView = true)]//非默認樹狀顯示
    public PhysicMaterial NoTreeView;


    [PropertySpace(40)]
    [AssetSelector(Paths = "Assets/TutorialAsset/ExampleScriptableObjects")]
    public ScriptableObject ScriptableObjectsFromFolder;
    [AssetSelector(Paths = "Assets/TutorialAsset/ExampleScriptableObjects|Assets/Plugins/Sirenix/Odin Inspector")]
    public ScriptableObject ScriptableObjectsFromMultipleFolders;

    [PropertySpace(40)]
    [AssetSelector(Filter = "New Animation t:AnimationClip l:自定義標簽")]
    public UnityEngine.Object AssetDatabaseSearchFilters;

    [Title("輔助性功能")]
    [AssetSelector(DisableListAddButtonBehaviour = true)] //開啟后加號不會出現(xiàn)樹形下拉條以彈窗形式出現(xiàn)
    public List<GameObject> DisableListAddButtonBehaviour;

    [PropertySpace(40)]
    [AssetSelector(DrawDropdownForListElements = false)]
    public List<GameObject> DisableListElementBehaviour_False;
    [AssetSelector(DrawDropdownForListElements = true)]
    public List<GameObject> DisableListElementBehaviour_True;

    [PropertySpace(40)]
    [AssetSelector(ExcludeExistingValuesInList = true)]
    public List<GameObject> ExcludeExistingValuesInList_True;
    [AssetSelector(ExcludeExistingValuesInList = false)]
    public List<GameObject> ExcludeExistingValuesInList_False;

    [PropertySpace(40)]
    [AssetSelector(IsUniqueList = true)]
    public List<GameObject> DisableUniqueListBehaviour_True;
    [AssetSelector(IsUniqueList = false)]
    public List<GameObject> DisableUniqueListBehaviour_False;

    [PropertySpace(40)]
    [AssetSelector(ExpandAllMenuItems = true)]//下拉條是否展開
    public List<GameObject> ExpandAllMenuItems_True;
    [AssetSelector(ExpandAllMenuItems = false)]
    public List<GameObject> ExpandAllMenuItems_False;

    [PropertySpace(40)]
    [AssetSelector(DropdownTitle = "最定義下拉列表標題")]
    public List<GameObject> CustomDropdownTitle;
}

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子狭魂,更是在濱河造成了極大的恐慌,老刑警劉巖党觅,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雌澄,死亡現(xiàn)場離奇詭異,居然都是意外死亡仔役,警方通過查閱死者的電腦和手機掷伙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來又兵,“玉大人任柜,你說我怎么就攤上這事∨娉” “怎么了宙地?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長逆皮。 經(jīng)常有香客問我宅粥,道長,這世上最難降的妖魔是什么电谣? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任秽梅,我火速辦了婚禮抹蚀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘企垦。我一直安慰自己环壤,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布钞诡。 她就那樣靜靜地躺著郑现,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荧降。 梳的紋絲不亂的頭發(fā)上接箫,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音朵诫,去河邊找鬼辛友。 笑死,一個胖子當著我的面吹牛拗窃,可吹牛的內(nèi)容都是我干的瞎领。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼随夸,長吁一口氣:“原來是場噩夢啊……” “哼九默!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宾毒,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤驼修,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后诈铛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乙各,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年幢竹,在試婚紗的時候發(fā)現(xiàn)自己被綠了耳峦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡焕毫,死狀恐怖蹲坷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情邑飒,我是刑警寧澤循签,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站疙咸,受9級特大地震影響县匠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一乞旦、第九天 我趴在偏房一處隱蔽的房頂上張望贼穆。 院中可真熱鬧,春花似錦杆查、人聲如沸扮惦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至浊仆,卻和暖如春客峭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抡柿。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工舔琅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人洲劣。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓备蚓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親囱稽。 傳聞我的和親對象是個殘疾皇子郊尝,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容