您好,登錄后才能下訂單哦!
這篇文章主要介紹Unity實(shí)現(xiàn)換裝系統(tǒng)的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
具體內(nèi)容如下
1.創(chuàng)建Sprite Library Asset
2.添加新目錄
Label 可以理解為標(biāo)簽,在代碼調(diào)用過(guò)程中使用,將該部位裝備圖片拖入Sprite中
3.添加組件
給需要換裝的部位添加Sprite Resolver組件(如頭部換裝,就在頭部對(duì)象掛載組件)
選擇目錄名,就會(huì)出現(xiàn)之前Library Asset中拖拽的圖片內(nèi)容,點(diǎn)擊不同圖片可以預(yù)覽效果(如果出現(xiàn)裝備位置偏移,需調(diào)整圖片的pivot)
4.通過(guò)代碼實(shí)現(xiàn)換裝
小筆記:
1).UnityEngine.Experimental.U2D.Animation 記得寫
2).Start函數(shù)中GetComponents的s不要忘,也可以用FindObjectsOfType
3).如果是整體換套裝,就將腳本掛載到Player對(duì)象上,如果只是單獨(dú)換部件如武器,就單獨(dú)掛載到武器對(duì)象上
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Experimental.U2D.Animation; public class RifleSpriteControl : MonoBehaviour { public List<SpriteResolver> spriteResolvers = new List<SpriteResolver>(); // Start is called before the first frame update void Start() { foreach(var resolver in FindObjectsOfType<SpriteResolver>()) { //將遍歷到的所有SpriteResolver添加到list中 spriteResolvers.Add(resolver); } } // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.E))//按E切換到AK47 { foreach (var resolver in this.GetComponents<SpriteResolver>()) { //SetCategoryAndLabel(目錄名,步驟2中所填寫的Label),以獲取相應(yīng)的圖片 resolver.SetCategoryAndLabel(resolver.GetCategory(), "AK47"); } } if (Input.GetKeyDown(KeyCode.R))//按R切換到MP5 { foreach (var resolver in this.GetComponents<SpriteResolver>()) { resolver.SetCategoryAndLabel(resolver.GetCategory(), "MP5"); } } } }
以上是“Unity實(shí)現(xiàn)換裝系統(tǒng)的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。