Unity3d通用工具類之NGUI圖集分解

原文地址:http://www.cnblogs.com/CaomaoUnity3d/p/6043395.html

原文補(bǔ)充:Directory在System.IO 空間下,所以需要導(dǎo)入這個(gè)System.IO


Unity3d通用工具類之NGUI圖集分解

由于最近需要一些美術(shù)資源嗎民鼓,但是無(wú)奈自己不會(huì)制作UI癞蚕,所以就打算去網(wǎng)上的項(xiàng)目中直接找?guī)讖埧梢允褂玫馁N圖資源计螺。

但是發(fā)現(xiàn)這些資源已經(jīng)被NGUI自帶的打包圖集工具打包好了,而且原小貼圖也已經(jīng)全部刪掉了乒躺,只剩下一個(gè)預(yù)制物。

那么這個(gè)預(yù)制物里面包含什么呢:

1.一張大圖集貼圖

2.大貼圖的材質(zhì)球

3.掛上UIAtla腳本的預(yù)制物

那么重點(diǎn)來(lái)了,我們?cè)撊绾潍@取這張大貼圖中的小貼圖呢争涌?

這里我寫了個(gè)小插件,我直接在NGUI源代碼里面改:

找到NGUI的源代碼:UIAtlasMaker

在OnGUI方法里面辣恋,我新添加了可以導(dǎo)出貼圖的代碼:

GUILayout.BeginHorizontal();

{

if(tex !=null)

{

if(GUILayout.Button("導(dǎo)出貼圖(PNG)",GUILayout.Width(120f)))

{

stringfilePath = EditorUtility.SaveFolderPanel("保存貼圖到指定文件夾","","");

ExportTexturePNGFromAtlas(filePath, NGUISettings.atlas);

}

}

}

GUILayout.EndHorizontal();

ExportTexturePNGFromAtlas():

staticvoidExportTexturePNGFromAtlas(stringfolderPath,UIAtlas atlas)

{

List exitSpritesList = atlas.spriteList;

Texture2D atlasTexture = NGUIEditorTools.ImportTexture(atlas.texture,true,false, !atlas.premultipliedAlpha);

intoldwith = atlasTexture.width;

intoldHeight = atlasTexture.height;

Color32[] oldPixels =null;

foreach(varesinexitSpritesList)

{

intxmin = Mathf.Clamp(es.x, 0, oldwith);

intymin = Mathf.Clamp(es.y, 0, oldHeight);

intnewWidth = Mathf.Clamp(es.width, 0, oldwith);

intnewHeight = Mathf.Clamp(es.height, 0, oldHeight);

if(newWidth == 0 || newHeight == 0)continue;

if(oldPixels ==null) oldPixels = atlasTexture.GetPixels32();

Color32[] newPixels =newColor32[newWidth * newHeight];

for(inty = 0; y < newHeight; ++y)

{

for(intx = 0; x < newWidth; ++x)

{

intnewIndex = (newHeight - 1 - y) * newWidth + x;

intoldIndex = (oldHeight - 1 - (ymin + y)) * oldwith + (xmin + x);

newPixels[newIndex] = oldPixels[oldIndex];

}

}

Texture2D t =newTexture2D(newWidth, newHeight);

t.SetPixels32(newPixels);

t.Apply();

byte[] bytes = t.EncodeToPNG();

Texture2D.DestroyImmediate(t);

t =null;

if(!Directory.Exists(folderPath))

{

Directory.CreateDirectory(folderPath);

}

using(FileStream fs =newFileStream(folderPath +"/"+ es.name +".png", FileMode.CreateNew))

{

BinaryWriter writer =newBinaryWriter(fs);

writer.Write(bytes);

}

}

}

打開NGUI的Atlas Maker:

點(diǎn)擊導(dǎo)出貼圖亮垫,然后會(huì)彈出選擇保存貼圖到哪個(gè)文件夾,點(diǎn)擊選擇文件夾之后伟骨,小貼圖就導(dǎo)出成功了饮潦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市携狭,隨后出現(xiàn)的幾起案子继蜡,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,423評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稀并,死亡現(xiàn)場(chǎng)離奇詭異仅颇,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)碘举,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門忘瓦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人引颈,你說(shuō)我怎么就攤上這事政冻。” “怎么了线欲?”我有些...
    開封第一講書人閱讀 157,019評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵明场,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我李丰,道長(zhǎng)苦锨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,443評(píng)論 1 283
  • 正文 為了忘掉前任趴泌,我火速辦了婚禮舟舒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗜憔。我一直安慰自己秃励,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評(píng)論 6 385
  • 文/花漫 我一把揭開白布吉捶。 她就那樣靜靜地躺著夺鲜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪呐舔。 梳的紋絲不亂的頭發(fā)上币励,一...
    開封第一講書人閱讀 49,798評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音珊拼,去河邊找鬼食呻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛澎现,可吹牛的內(nèi)容都是我干的仅胞。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼剑辫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼干旧!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起揭斧,我...
    開封第一講書人閱讀 37,704評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤莱革,失蹤者是張志新(化名)和其女友劉穎峻堰,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盅视,經(jīng)...
    沈念sama閱讀 44,152評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捐名,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了闹击。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镶蹋。...
    茶點(diǎn)故事閱讀 38,629評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖赏半,靈堂內(nèi)的尸體忽然破棺而出贺归,到底是詐尸還是另有隱情,我是刑警寧澤断箫,帶...
    沈念sama閱讀 34,295評(píng)論 4 329
  • 正文 年R本政府宣布拂酣,位于F島的核電站,受9級(jí)特大地震影響仲义,放射性物質(zhì)發(fā)生泄漏婶熬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評(píng)論 3 313
  • 文/蒙蒙 一埃撵、第九天 我趴在偏房一處隱蔽的房頂上張望赵颅。 院中可真熱鬧,春花似錦暂刘、人聲如沸饺谬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)募寨。三九已至,卻和暖如春芝发,著一層夾襖步出監(jiān)牢的瞬間绪商,已是汗流浹背苛谷。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工辅鲸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腹殿。 一個(gè)月前我還...
    沈念sama閱讀 46,333評(píng)論 2 360
  • 正文 我出身青樓独悴,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親锣尉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刻炒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評(píng)論 2 348

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

  • 一、NGUI 介紹 1.NGUI 插件安裝 首先創(chuàng)建一個(gè)新的 Unity 工程項(xiàng)目自沧,導(dǎo)入 NGUI 插件資源包坟奥。 ...
    TonyWan_AR閱讀 9,658評(píng)論 0 8
  • 更新:【面試題含答案】http://bbs.9ria.com/thread-288394-1-1.html 高頻問(wèn)...
    好怕怕閱讀 4,728評(píng)論 3 52
  • 111. [動(dòng)畫系統(tǒng)]如何將其他類型的動(dòng)畫轉(zhuǎn)換成關(guān)鍵幀動(dòng)畫树瞭? 動(dòng)畫->點(diǎn)緩存->關(guān)鍵幀 112. [動(dòng)畫]Unit...
    胤醚貔貅閱讀 12,979評(píng)論 3 90
  • 最近,看了幾篇文章爱谁,對(duì)其中的幾句話深有感觸晒喷。 一,心小访敌,大城也辛骨谩;心大寺旺,小城也大爷抓。 其實(shí),無(wú)所謂大城市阻塑,小城市蓝撇,適...
    hellonewDaisy閱讀 239評(píng)論 0 0
  • 共 5024 字,讀完需 6 分鐘陈莽,速讀需 2 分鐘唉地,首發(fā)于知乎專欄前端周刊。寫在前面传透,筆者在做面試官這 2 年多...
    王仕軍閱讀 1,953評(píng)論 2 48