Odin Inspector 系列教程 --- File Path Attribute

File Path Attribute特性:用于字符串屬性,并在Inspector面板對應(yīng)的屬性值旁繪制一個文件夾按鈕,便于快讀定位文件,并提供文件路徑的接口。

【FilePath】直接使用,默認(rèn)提供一個相對于Unity的路徑
    // 默認(rèn)情況下,F(xiàn)olderPath提供了一個相對于Unity項目的路徑。
    [FilePath]
    public string UnityProjectPath;
【ParentFolder】可以提供自定義父路徑。父路徑可以是相對于Unity項目的,也可以是絕對的。
    // 可以提供自定義父路徑。父路徑可以是相對于Unity項目的,也可以是絕對的。
    [FilePath(ParentFolder = "Assets/Plugins/Sirenix")]
    public string RelativeToParentPath;

如果找不到最對應(yīng)的路徑,還可以提供一個相對于目標(biāo)路徑的路徑

    // 使用父路徑,F(xiàn)ilePath還可以提供相對于resources文件夾的路徑。
    [FilePath(ParentFolder = "Assets/Resources")]
    public string ResourcePath;
【Extensions】根據(jù)擴(kuò)展名來篩選文件
    // 提供一個逗號分隔的允許擴(kuò)展列表。點(.)是可選的。
    [FilePath(Extensions = "cs, lua")]
    [BoxGroup("Conditions")]
    public string ScriptFiles;
【AbsolutePath】設(shè)置是否顯示絕對路徑
    // 通過將AbsolutePath設(shè)置為true,文件路徑將提供一個絕對路徑。
    [PropertySpace(40,40)]
    [FilePath(AbsolutePath = true)]
    public string AbsolutePath;
【RequireExistingPath】如果提供的路徑無效,還可以將FilePath配置為顯示錯誤信息。
    // 如果提供的路徑無效,還可以將FilePath配置為顯示錯誤信息。
    [FilePath(RequireExistingPath = true)]
    public string ExistingPath;
【UseBackslashes】默認(rèn)情況下,F(xiàn)ilePath將強(qiáng)制使用前斜杠。還可以將其配置為使用反斜杠
    // 默認(rèn)情況下,F(xiàn)ilePath將強(qiáng)制使用前斜杠。還可以將其配置為使用反斜杠
    [PropertySpace(40, 40)]
    [FilePath(UseBackslashes = true)]
    public string Backslashes;
FilePath還支持使用$符號的成員引用。
    // FilePath還支持使用$符號的成員引用。
    [FilePath(ParentFolder = "$DynamicParent", Extensions = "$DynamicExtensions")]
    [BoxGroup("Member referencing")]
    public string DynamicFilePath;

    [BoxGroup("Member referencing")]
    public string DynamicParent = "Assets/Plugin/Sirenix";

    [BoxGroup("Member referencing")]
    public string DynamicExtensions = "cs, unity, jpg";
FilePath還支持列表和數(shù)組。
    // FilePath還支持列表和數(shù)組。
    [FilePath(ParentFolder = "Assets/Scenes/Odin-Inspector-Chinese-Tutorial/")]
    [BoxGroup("Lists")]
    public string[] ListOfFiles;
完整示例代碼
using Sirenix.OdinInspector;
using UnityEngine;


public class FilePathAttributeExample : MonoBehaviour
{
    // 默認(rèn)情況下,F(xiàn)olderPath提供了一個相對于Unity項目的路徑。
    [FilePath]
    public string UnityProjectPath;

    // 可以提供自定義父路徑。父路徑可以是相對于Unity項目的,也可以是絕對的。
    [FilePath(ParentFolder = "Assets/Plugins/Sirenix")]
    public string RelativeToParentPath;

    // 使用父路徑,F(xiàn)ilePath還可以提供相對于resources文件夾的路徑。
    [FilePath(ParentFolder = "Assets/Resources")]
    public string ResourcePath;

    // 提供一個逗號分隔的允許擴(kuò)展列表。點(.)是可選的。
    [FilePath(Extensions = "cs, lua")]
    [BoxGroup("Conditions")]
    public string ScriptFiles;

    // 通過將AbsolutePath設(shè)置為true,文件路徑將提供一個絕對路徑。
    [PropertySpace(40,40)]
    [FilePath(AbsolutePath = true)]
    public string AbsolutePath;

    // 如果提供的路徑無效,還可以將FilePath配置為顯示錯誤信息。
    [FilePath(RequireExistingPath = true)]
    public string ExistingPath;

    // 默認(rèn)情況下,F(xiàn)ilePath將強(qiáng)制使用前斜杠。還可以將其配置為使用反斜杠
    [PropertySpace(40, 40)]
    [FilePath(UseBackslashes = true)]
    public string Backslashes;

    // FilePath還支持使用$符號的成員引用。
    [FilePath(ParentFolder = "$DynamicParent", Extensions = "$DynamicExtensions")]
    [BoxGroup("Member referencing")]
    public string DynamicFilePath;

    [BoxGroup("Member referencing")]
    public string DynamicParent = "Assets/Plugin/Sirenix";

    [BoxGroup("Member referencing")]
    public string DynamicExtensions = "cs, unity, jpg";


    // FilePath還支持列表和數(shù)組。
    [FilePath(ParentFolder = "Assets/Scenes/Odin-Inspector-Chinese-Tutorial/")]
    [BoxGroup("Lists")]
    public string[] ListOfFiles;
}

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

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

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

  • File Path Attribute特性:用于字符串字段,并為目錄路徑提供接口。 【FolderPath】 默認(rèn)...
    su9257_海瀾閱讀 2,502評論 0 1
  • 轉(zhuǎn)載自VR設(shè)計云課堂[http://www.lxweimin.com/u/c7ffdc4b379e]Unity S...
    水月凡閱讀 1,067評論 0 0
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,467評論 0 5
  • 放假了,坐上的客車,很快就到達(dá)了終點。 但是想要到家的話,這段路還有很長。而且是剛下過雨后有些泥濘的鄉(xiāng)間山道。 對...
    湮滅i閱讀 210評論 0 0
  • 紅塵一夢無今古, 總是空中幻化生。 鏡里烏絲成白雪, 相思不了盡凡情。
    斷紅塵閱讀 86評論 0 0