日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【Unity精灵】2D精灵图片替换常见的问题

發(fā)布時(shí)間:2023/12/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Unity精灵】2D精灵图片替换常见的问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一開始就從大的方向建立起一堆邏輯代碼,然而對(duì)于一個(gè)新手來說,大的邏輯是正確的

小的毛病很多,這就造成了很多小的邏輯的麻煩


替換精靈,如果精靈已經(jīng)建立起來,并且有了標(biāo)簽tag的時(shí)候,遍歷同一個(gè)標(biāo)簽的物體,將是最好的打算,然后在

把范圍縮小,使得最后找到目標(biāo)



動(dòng)態(tài)更換物體的2D精靈最簡(jiǎn)單的兩句代碼

這個(gè)路徑是Resources文件夾下面的ImageSprite/BodyCloth/Clothtest001/Clothtest001B/hand/文件夾的Cloth_Left_Hand_1文件,不管是什么,最好是對(duì)應(yīng)的圖片

Sprite spr = Resources.Load<Sprite>("ImageSprite/BodyCloth/Clothtest001/Clothtest001B/hand/Cloth_Left_Hand_1");//生成精靈
??????? gameObject.GetComponent<SpriteRenderer>().sprite = spr;


然后遍歷相同標(biāo)簽的物體

foreach (var cloth_respawn in cloth_respawns)
???????? {
???????????? Debug.Log(cloth_respawn.name);
???????? }

這個(gè)遍歷函數(shù)也是正確的,那么就開始判斷

foreach (var cloth_respawn in cloth_respawns)
???????? {
???????????? string sprspr = Cloth_RPath + cloth_respawn.name;//獲得文件路徑
??????????? Debug.Log(sprspr);//查看 是否是正確的
??????????? Sprite spr = Resources.Load<Sprite>(sprspr);//生成精靈
??????????????? cloth_respawn.gameObject.GetComponent<SpriteRenderer>().sprite = spr;//再看這句話是否正確執(zhí)行
???????? }

發(fā)現(xiàn)大量 要替換的精靈 沒有被替換成想要的精靈


看著看著發(fā)現(xiàn)是因?yàn)?#xff0c;有的 相同標(biāo)簽的物體的精靈 其中有一部分是不用 換精靈的,在

? Sprite spr = Resources.Load<Sprite>(sprspr);//生成精靈

使用了Debug.Log(spr.name);

??????????????? cloth_respawn.gameObject.GetComponent<SpriteRenderer>().sprite = spr;//再看這句話是否正確執(zhí)行

發(fā)現(xiàn)報(bào)錯(cuò),spr不存在,沒有實(shí)例化。既然沒有實(shí)例化,那么就是為空的,如果不為空,那么Debug.Log(spr.name);說不定就可以

foreach (var cloth_respawn in cloth_respawns)
???????? {
???????????? string sprspr = Cloth_RPath + cloth_respawn.name;
??????????? Debug.Log(sprspr);
??????????? //下面的精靈圖片的文件路徑
??????????? Sprite spr = Resources.Load<Sprite>(sprspr);//生成精靈
??????????? if (spr != null)
??????????? {
??????????????? cloth_respawn.gameObject.GetComponent<SpriteRenderer>().sprite = spr;
??????????? }
???????? }

然后發(fā)現(xiàn)的確是這樣,當(dāng)這個(gè)精靈為空的時(shí)候,UNITY并不知道,然后就出現(xiàn)了錯(cuò)誤


發(fā)現(xiàn)替換精靈的圖片的名稱不對(duì),這個(gè)時(shí)候,就要重新導(dǎo)入圖片,使得圖片和精靈的名稱一致


路徑太長(zhǎng)ImageSprite/BodyCloth/Clothtest001/Clothtest001B/hand/Cloth_Left_Hand_1,缺少斜杠


邏輯的方向是對(duì)的,就要從一點(diǎn)一滴開始實(shí)踐




總結(jié)

以上是生活随笔為你收集整理的【Unity精灵】2D精灵图片替换常见的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。