Unity實現換裝系統

Unity如何實現換裝系統,供大傢參考,具體內容如下

1.創建Sprite Library Asset

2.添加新目錄

Label 可以理解為標簽,在代碼調用過程中使用,將該部位裝備圖片拖入Sprite中

3.添加組件

給需要換裝的部位添加Sprite Resolver組件(如頭部換裝,就在頭部對象掛載組件)

選擇目錄名,就會出現之前Library Asset中拖拽的圖片內容,點擊不同圖片可以預覽效果(如果出現裝備位置偏移,需調整圖片的pivot)

4.通過代碼實現換裝

小筆記:

1).UnityEngine.Experimental.U2D.Animation 記得寫
2).Start函數中GetComponents的s不要忘,也可以用FindObjectsOfType
3).如果是整體換套裝,就將腳本掛載到Player對象上,如果隻是單獨換部件如武器,就單獨掛載到武器對象上

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),以獲取相應的圖片
                resolver.SetCategoryAndLabel(resolver.GetCategory(), "AK47");
            }
        }
        if (Input.GetKeyDown(KeyCode.R))//按R切換到MP5
        {
            foreach (var resolver in this.GetComponents<SpriteResolver>())
            {
                resolver.SetCategoryAndLabel(resolver.GetCategory(), "MP5");
            }
        }
    }
}

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀:

    None Found