簡介: 記得很早之前要在工程內(nèi)定位一個 Script 文件那是一個難啊,最新遇到了新的方法,就如同在 Project 面板內(nèi)搜索一樣簡單
unity版本: 2022.3.22f1c1
管線: URP
痛點(diǎn)
比如在很早之前,如果開發(fā)了一個插件,而這個插件內(nèi)又是使用ScriptableObject 來作為配置文件,我希望在發(fā)布的包里沒有配置文件,而是在第一次觸發(fā)時自動加載,加載沒有時自動創(chuàng)建,而這個文件的創(chuàng)建位置需要根據(jù)我的代碼文件所在位置進(jìn)行相對位置保存。這樣做主要是為了當(dāng)插件包被移動存放位置時,依然可以正確識別到配置文件。
之前怎么做的呢
- 先創(chuàng)建一個 ScriptableObject 配置文件的實(shí)例
- 然后使用 MonoScript.FromScriptableObject 方法獲取這個實(shí)例的腳本文件
- 然后 AssetDatabase.GetAssetPath 方法獲取腳本保存路徑
var so=ScriptableObject.CreateInstance<MyObject>();
var script= MonoScript.FromScriptableObject(so);
UnityEngine.Object.DestroyImmediate(so);
var scriptPath=AssetDatabase.GetAssetPath(script);
雖然步驟不多,但是看上去也是挺麻煩的呢
新的查找方法
不知道是什么時候有的,或者可能一直都在
用法很簡單,參考官方文檔
AssetDatabase.FindAssets(string filter);
AssetDatabase.FindAssets(string filter, string[] searchInFolders);