日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

简单总结Unity使用AssetDatabase编辑器资源管理

發(fā)布時間:2024/1/1 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单总结Unity使用AssetDatabase编辑器资源管理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近參考了各位大神的資源,初步學習了Unity的資源管理模式,包括在編輯器管理(使用AssetDatabase)和在運行時管理(使用Resources和AssetBundle)。在此簡單總結編輯器模式下的資源管理方法,方便自己回顧。


① 加載/卸載資源

using UnityEngine; using System.Collections; #if UNITY_EDITOR using UnityEditor; // 這個文件在手機上沒有,需要使用條件編譯 #endifpublic class TestLoadAsset : MonoBehaviour {void Start () { #if UNITY_EDITOR// 加載資源Texture2D image = AssetDatabase.LoadAssetAtPath("Assets/Images/1.jpg", typeof(Texture2D)) as Texture2D;// 使用資源Debug.Log(image.name);// 卸載資源:注意,卸載方法是在Resources類中Resources.UnloadAsset(image);// 調用GC來清理垃圾,資源不是立刻就被清掉的Debug.Log(image); #endif} }

需要注意的是,調用Resources.UnloadAsset()來清理資源時,只是標記該資源需要被GC回收,但不是立刻就被回收的,下一行的Debug.Log依然能看到該資源的引用不是Null。


② 創(chuàng)建資源

using UnityEngine; using System.Collections; #if UNITY_EDITOR using UnityEditor; // 這個文件在手機上沒有,需要使用條件編譯 #endif// 創(chuàng)建資源 public class TestCreateAsset : MonoBehaviour {void Start () { #if UNITY_EDITOR// 加載資源Material mat = AssetDatabase.LoadAssetAtPath("Assets/Materials/New Material.mat", typeof(Material)) as Material;// 以mat為模板創(chuàng)建mat2Material mat2 = Object.Instantiate<Material>(mat);// 創(chuàng)建資源AssetDatabase.CreateAsset(mat2, "Assets/Materials/1.mat");// 刷新編輯器,使剛創(chuàng)建的資源立刻被導入,才能接下來立刻使用上該資源AssetDatabase.Refresh();// 使用資源Debug.Log(mat2.name); #endif} }

運行腳本后,會發(fā)現(xiàn)在Project視窗中多了一個剛創(chuàng)建的1.mat資源。

需要注意的是,無法直接創(chuàng)建一個資源,可以先加載一個現(xiàn)有的資源作為模版,或者像官方文檔中的例子那樣先New一個模板出來。


③ 修改資源

using UnityEngine; using System.Collections; #if UNITY_EDITOR using UnityEditor; // 這個文件在手機上沒有,需要使用條件編譯 #endifpublic class TestModifyAsset : MonoBehaviour {// Use this for initializationvoid Start () { #if UNITY_EDITOR// 加載資源Material mat = AssetDatabase.LoadAssetAtPath("Assets/Materials/New Material.mat", typeof(Material)) as Material;// 修改資源mat.color = Color.blue;// 通知編輯器有資源被修改了EditorUtility.SetDirty(mat);// 保存所有修改AssetDatabase.SaveAssets(); #endif} }

運行腳本后,會發(fā)現(xiàn)New Material.mat這個材質資源的顏色被永久改為了藍色。

需要注意的是,在對資源做了任何修改后,需要通知編輯器有資源已被修改,使用 EditorUtility.SetDirty()函數(shù)來標記已被修改的資源,然后調用AssetDatabase.SaveAssets()來保存修改。

總結

以上是生活随笔為你收集整理的简单总结Unity使用AssetDatabase编辑器资源管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。