美文网首页Unity3D游戏开发C#
Unity 资源管理 探究(一)

Unity 资源管理 探究(一)

作者: xzhuan | 来源:发表于2018-10-25 20:12 被阅读5次

    Aitin原创稿件,转载请注明出处!
    功能:资源导入,自动设置属性 工具
    需求:处理unity资源的时候,每次导入资源 都要手动设置 资源属性,重复 且 浪费时间,需要实现个自动设置资源属性功能
    代码如下

    /**************************************
    *Module:资源导入 属性设置                                               
    *Author:aitin                                        
    *Time: 2018.05.18                                                     
    **************************************/
    using System.IO;
    using UnityEditor;
    using UnityEngine;
    
    
    namespace CLB
    {
       public class ABImporter : AssetPostprocessor
       {
           /// <summary>
           /// 模型导入之前调用
           /// </summary>
           public void OnPreprocessModel()
           {
           }
    
           /// <summary>
           /// 模型导入之前调用
           /// </summary> 
           public void OnPostprocessModel(GameObject go)
           {
           }
    
           /// <summary>
           /// 纹理导入之前调用,针对入到的纹理进行设置
           /// </summary>
           void OnPreprocessTexture()
           {
           }
    
           /// <summary>
           /// 纹理导入之前调用,针对入到的纹理进行设置
           /// </summary>
           public void OnPostprocessTexture(Texture2D tex)
           {
               SetImageInspector();
           }
    
           /// <summary>
           /// 声音导入之前调用
           /// </summary>
           public void OnPreprocessAudio()
           {
           }
    
           /// <summary>
           /// 声音导入之前调用
           /// </summary>
           public void OnPostprocessAudio(AudioClip clip)
           {
           }
    
           /// <summary>
           /// 所有的资源的导入,删除,移动,都会调用此方法,注意,这个方法是static的
           /// </summary>
           public static void OnPostprocessAllAssets(string[] importedAsset, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
           {
               foreach (string file in importedAsset)
               {
                   SetAssetBundleName(file);
               }
    
               foreach (string file in deletedAssets)
               {
                   DeleteAsset(file);
               }
    
               foreach (string file in movedAssets)
               {
                   AssetDatabase.ImportAsset(file);
                   SetAssetBundleName(file);
               }
    
               foreach (string file in movedFromAssetPaths)
               {
                   DeleteAsset(file);
               }
           }
    
           /// <summary>
           /// 设置图片 属性
           /// </summary>
           public void SetImageInspector()
           {
           }
    
           /// 导入文件时添加AssetBundle名字
           static void SetAssetBundleName(string abpath)
           {
           }
    
           // 删除文件
           static void DeleteAsset(string file)
           {
           }
       }
    }
    

    这样就可以摆脱 资源设置烦恼啦~~~

    相关文章

      网友评论

        本文标题:Unity 资源管理 探究(一)

        本文链接:https://www.haomeiwen.com/subject/ssoctqtx.html