Unity3d Editor之代碼管理資源

需求分析

??在實(shí)際工作過程中,美術(shù)資源并不總是按照預(yù)想的方式提交的萝衩。隨著項(xiàng)目的增大,資源管理混亂產(chǎn)生的影響也會成倍地增加葡兑。有些團(tuán)隊(duì)的做法是給相關(guān)負(fù)責(zé)人檢查無誤后再提交到項(xiàng)目中。這里我們采用另一種方法赞草,使用代碼控制資源的導(dǎo)入讹堤!每當(dāng)資源導(dǎo)入項(xiàng)目后自動修改屬性、提取數(shù)據(jù)厨疙、刪除多余的資源洲守,這種策略可以節(jié)省很多時(shí)間。

  • 案例1:初始化資源(更改屬性)
    ??模型美術(shù)上傳了一批角色的動作文件沾凄,經(jīng)過檢查發(fā)現(xiàn)很多動作做都有問題梗醇,有些導(dǎo)入項(xiàng)目時(shí),并沒有使用快捷鍵ctrl+D提取其中的Animction文件撒蟀;有些動作應(yīng)該是循環(huán)的叙谨,但是美術(shù)并未勾選循環(huán)。

  • 案例2:檢查資源
    ??新的一批模型文件再次襲來保屯,這一次都是角色模型手负,項(xiàng)目中所有人物模型,都需要一個(gè)掛點(diǎn)手部武器掛點(diǎn)姑尺,最后測試部門對所有人物模型都運(yùn)行一次后發(fā)現(xiàn)竟终,因?yàn)槿鄙龠@個(gè)掛點(diǎn),部分模型出現(xiàn)錯(cuò)誤股缸。


請把資源初始化屬性的工作交給機(jī)器,使用命令來初始化資源衡楞!
請把檢查資源的工作交給機(jī)器,使用命令來檢查資源,如果資源不符合需求則彈出錯(cuò)誤提示敦姻!

  • 圖片導(dǎo)入回調(diào)
    ??注意腳本需要放到Editor文件夾下瘾境,才能正確被回調(diào)。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class AssetPostProcessor_Test1 : AssetPostprocessor {
    void OnPostprocessTexture(Texture2D texture)
    {
        TextureImporter import = assetImporter as TextureImporter;
        Debug.Log(import.assetPath);
    }
}


  • 圖片導(dǎo)入后自動修改圖片格式
    ??注意镰惦,MipMap是用于在遠(yuǎn)離攝像機(jī)時(shí)降低圖片質(zhì)量的功能迷守,因此對于UI上的貼圖都可以關(guān)閉,以減少內(nèi)存占用旺入。
public class AssetPostProcessor_Test1 : AssetPostprocessor {

    void OnPostprocessTexture(Texture2D texture)
    {
        TextureImporter import = assetImporter as TextureImporter;
        Debug.Log(import.assetPath);

        //Set mipmapEnable = false;
        import.mipmapEnabled = false;
        import.textureType = TextureImporterType.Sprite;
        //Save The Changes
        EditorUtility.SetDirty(import);
    }
}


  • 模型導(dǎo)入回調(diào)
public class AssetPostProcessor_Test1 : AssetPostprocessor {
    void OnPostprocessModel(GameObject obj)
    {
        ModelImporter import = assetImporter as ModelImporter;
        Debug.Log(import.assetPath);
    }
}


  • 拷貝動畫文件并且刪除模型文件
   void OnPostprocessModel(GameObject obj)
    {
        ModelImporter import = assetImporter as ModelImporter;
        Debug.Log(import.assetPath);
        var key = "Models".ToLower();
        var path = import.assetPath.ToLower();
        if(!path.Contains(key))
        {
            EditorApplication.delayCall += HandCopyFBXAnimation;
        }
    }

    /// <summary>
    /// 處理拷貝模型動畫
    /// </summary>
    void HandCopyFBXAnimation()
    {
        EditorApplication.delayCall -= HandCopyFBXAnimation;
        ModelImporter import = assetImporter as ModelImporter;
        var asset = AssetDatabase.LoadAllAssetsAtPath(import.assetPath);
        foreach (var clipObje in asset)
        {
            if (clipObje is AnimationClip && !clipObje.name.Contains("__preview__"))
            {
                string outputPath = Path.GetDirectoryName(import.assetPath)
                                        + Path.DirectorySeparatorChar + clipObje.name + ".anim";
                var currentAsset = AssetDatabase.LoadAssetAtPath<AnimationClip>(outputPath);
                //如果存在則覆蓋還是追加兑凿?
                if (currentAsset != null)
                {
                    EditorUtility.CopySerialized(clipObje, currentAsset);//不影響文件關(guān)聯(lián)的情況下更新文件內(nèi)容
                    EditorUtility.SetDirty(currentAsset);
                }
                //不存在則創(chuàng)建
                else
                {
                    var newAnim = new AnimationClip();
                    EditorUtility.CopySerialized(clipObje, newAnim);
                    AssetDatabase.CreateAsset(newAnim, outputPath);
                }
            }
        }
        //刪除模型
        AssetDatabase.DeleteAsset(import.assetPath);
    }


  • 資源命名規(guī)范/工程資源路徑使用命令
命令關(guān)鍵詞(不區(qū)分大小寫) 適用資源類型 作用
[UI] 圖片 UI圖片資源,取消 MipMap屬性
[ANM] 模型 拷貝動畫文件并且源模型文件
[LOOP] 模型 設(shè)置動畫循環(huán)模式
[SKIP] 所有 跳過所有檢查和設(shè)置



最后茵瘾,我們將在下一章節(jié)討論礼华,導(dǎo)入模型自動綁定材質(zhì)、使用命令檢查資源是否完整拗秘、如何批量修改資源圣絮。

Be continued

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市雕旨,隨后出現(xiàn)的幾起案子扮匠,更是在濱河造成了極大的恐慌捧请,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棒搜,死亡現(xiàn)場離奇詭異疹蛉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)力麸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門可款,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人末盔,你說我怎么就攤上這事筑舅∽浚” “怎么了陨舱?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長版仔。 經(jīng)常有香客問我游盲,道長,這世上最難降的妖魔是什么蛮粮? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任益缎,我火速辦了婚禮,結(jié)果婚禮上然想,老公的妹妹穿的比我還像新娘莺奔。我一直安慰自己,他們只是感情好变泄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布令哟。 她就那樣靜靜地躺著,像睡著了一般妨蛹。 火紅的嫁衣襯著肌膚如雪屏富。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天蛙卤,我揣著相機(jī)與錄音狠半,去河邊找鬼。 笑死颤难,一個(gè)胖子當(dāng)著我的面吹牛神年,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播行嗤,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼已日,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了昂验?” 一聲冷哼從身側(cè)響起捂敌,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤艾扮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后占婉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泡嘴,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年逆济,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了酌予。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奖慌,死狀恐怖抛虫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情简僧,我是刑警寧澤建椰,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站岛马,受9級特大地震影響棉姐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜啦逆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一伞矩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧夏志,春花似錦乃坤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至溉贿,卻和暖如春枫吧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宇色。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工九杂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宣蠕。 一個(gè)月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓例隆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親抢蚀。 傳聞我的和親對象是個(gè)殘疾皇子镀层,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

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

  • 1、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,982評論 3 119
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料唱逢? 從這篇文章中你...
    hw1212閱讀 12,728評論 2 59
  • 前些天坞古,跟朋友小然备韧,語音聊了很久。之所以聊了很久痪枫,是我們倆的境況相似织堂。 小然最近剛剛從工作了12年的公司辭職,獲賠...
    大C手貼閱讀 389評論 0 2
  • o soeng ko ding miu ya wan zu tong yoeng ya soeng bei gin...
    兩字八劃閱讀 466評論 0 0
  • 今天是爸爸的三十年同學(xué)聚會奶陈!爸爸?jǐn)y我和媽媽一同前來易阳! 聽聞了三十年前的學(xué)校生活,雖然當(dāng)時(shí)科技沒有現(xiàn)...
    大化天魔閱讀 240評論 1 5