1. 程式人生 > >Unity3d 匯入圖片 自動修改Texture Type為Sprite 2D and UI 及設定 Packing

Unity3d 匯入圖片 自動修改Texture Type為Sprite 2D and UI 及設定 Packing

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

Unity3d 的新版 UI 系統在給我們帶來很大便利的同時,也添加了一些小麻煩。每次從電腦中匯入圖片到 Unity3d 中都需要手動設定Texture Type為Sprite (2D and UI) 及設定 Packing Tag。對於需要打包為一個圖集的圖片,我們一般把它們放到一個資料夾中。 基於以上,我們可以讓圖片的 Packing Tag 自動設定為 資料夾的名字。

轉自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

Unity3d 提供了 資源匯入 的回撥函式,我們 可以使用 AssetPostProcessor 來在Unity3d 對圖片進行處理之前、之後 的回撥中,再進行一些自己的處理。

轉自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

在這裡,我們在圖片被Unity3d 處理之前,搶先 一步修改它 的 Texture Type 以及 Packing Tag 。

轉自http://blog.csdn.net/huutu http://www.thisisgame.com.cn


具體可以參照 Unity3d 官方文件。

http://docs.unity3d.com/ScriptReference/AssetPostprocessor.OnPreprocessTexture.html

/************************** * 檔名:AutoSetTextureUISprite.cs; * 檔案描述:匯入圖片資源到Unity時,自動修改為UI 2D Sprite,自動設定打包tag 為資料夾名字; * 建立日期:2015/05/04; * Author:陳鵬; ***************************/
using UnityEngine;using System.Collections;using UnityEditor;public class AutoSetTextureUISprite :AssetPostprocessor {    void OnPreprocessTexture()    {        //自動設定型別;        TextureImporter textureImporter = (TextureImporter)assetImporter;        textureImporter.textureType=TextureImporterType.Sprite;        //自動設定打包tag;        string dirName = System.IO.Path.GetDirectoryName(assetPath);        Debug.Log("Import ---  "+dirName);        string folderStr = System.IO.Path.GetFileName(dirName);        Debug.Log("Set Packing Tag ---  "+folderStr);        textureImporter.spritePackingTag = folderStr;    }}

把上面的程式碼檔案放到 Editor 資料夾中 ( 不是規定,只是習慣 ) 。

然後從電腦中拖一張圖片到 Project 檢視中,可以看到 圖片被自動修改 。

轉自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

轉自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

示例下載:

http://pan.baidu.com/s/1dDcZigT



           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述