Odin Attributes 大全之 Type Specifics 系列 | (2)Asset Selector 特性

在这里插入图片描述

【Odin Inspector and Serializer最新版 免费下载地址


Asset Selector 特性用于:在对象字段旁边添加一个小按钮,该按钮将向用户显示资产下拉列表,以便从特性中进行选择。

在这里插入图片描述

1.【AssetSelector】添加到对应的字段上即可

    [AssetSelector]
    public Material AnyAllMaterials;
    [AssetSelector]
    public Material[] ListOfAllMaterials;

在这里插入图片描述

2.【FlattenTreeView】是否开启树状图

    [PropertySpace(40)]
    [AssetSelector(FlattenTreeView = false)]//默认树状显示
    public PhysicMaterial TreeView;
    [AssetSelector(FlattenTreeView = true)]//非默认树状显示
    public PhysicMaterial NoTreeView;

在这里插入图片描述

3.【Paths】单路径或多路径查找

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

在这里插入图片描述

4.【Filter】自定义过滤条件

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

在这里插入图片描述

5.【DisableListAddButtonBehaviour】开启后加号不会出现树形下拉条以弹窗形式出现

    [Title("辅助性功能")]
    [AssetSelector(DisableListAddButtonBehaviour = true)] //开启后加号不会出现树形下拉条以弹窗形式出现
    public List<GameObject> DisableListAddButtonBehaviour;

在这里插入图片描述

6.【DrawDropdownForListElements】控制已经添加的Item是否含有下拉列表

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

在这里插入图片描述

7.【ExcludeExistingValuesInList】去除已经含有的Item

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

在这里插入图片描述

8.【IsUniqueList】开启列表勾选模式(这个关键字在Odin的很多特性中都有)

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

在这里插入图片描述

9.【ExpandAllMenuItems】下拉列表是否强制展开

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

在这里插入图片描述

10.【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)] //开启后加号不会出现树形下拉条以弹窗形式出现
    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;
}
  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值