Unity3D游戏开发C#

Unity 资源管理 探究(一)

2018-10-25  本文已影响5人  xzhuan

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)
       {
       }
   }
}

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

上一篇 下一篇

猜你喜欢

热点阅读