최대 1 분 소요

이 글은 유튜브 Sebastian Graves Create Dark Souls를 보고 따라 만들면서 헷갈리는 부분을 정리한 글입니다.

구현 개요

무기 교체 시스템과 UI를 연동시킨다.

UI 추가

Image를 통해 SLot UI를 다음과 같이 생성

image

image


스크립트 수정

QuickSlotUi 스크립트 추가

WeaponItem을 매개변수로 받아서 아이콘을 UI에 띄운다.

public class QuickSlotsUI : MonoBehaviour
{
    public Image leftWeaponIcon;
    public Image rightWeaponIcon;

    public void UpdateWeaponQucikSlotsUI(bool isLeft, WeaponItem weapon)
    {
        if(isLeft == false)
        {
            if(weapon.itemIcon != null)
            {
                rightWeaponIcon.sprite = weapon.itemIcon;
                rightWeaponIcon.enabled = true;
            }
            else
            {
                rightWeaponIcon.sprite = null;
                rightWeaponIcon.enabled = false;
            }
        }
        else
        {
            if (weapon.itemIcon != null)
            {
                leftWeaponIcon.sprite = weapon.itemIcon;
                leftWeaponIcon.enabled = true;
            }
            else
            {
                leftWeaponIcon.sprite = weapon.itemIcon;
                leftWeaponIcon.enabled = false;
            }
        }
    }
}


weaponSlotManager 수정

QuickSlotUI를 가져와서 무기를 바꿀 때 마다 함수를 실행한다.

QuickSlotsUI quickSlotsUI;

private void Awake()
{
    ...
    quickSlotsUI = FindAnyObjectByType<QuickSlotsUI>();
    ...
}

public void LoadWeaponOnSlot(WeaponItem weaponItem, bool isLeft)
{
    if (isLeft)
    {
        leftHandSlot.LoadWeaponModel(weaponItem);
        LoadLeftWeaponDamageCollider();
        quickSlotsUI.UpdateWeaponQucikSlotsUI(true, weaponItem); // 추가
        ...
    }
    else
    {
        rightHandSlot.LoadWeaponModel(weaponItem);
        LoadRightWeaponDamageCollider();
        quickSlotsUI.UpdateWeaponQucikSlotsUI(false, weaponItem); // 추가
        ...
    }
}

아이콘 만들기

간단하게 아이템의 사진을 찍는다.

sword01


찍은 사진을 다음 사이트에서 PNG로 전환한다. PNG변환 사이트

Sword01


가져온 Png를 Sprite로 변환한다.

image

weaponItem 스크립터블 오브젝트에 넣어준다.

image


결과

ezgif com-video-to-gif


배운점

  • Png로 변환하는 간단한 방법을 찾아낼 수 있었다.

댓글남기기