본문 바로가기
유니티

16

by 찡사랑방 2023. 4. 11.
728x90
728x90

인벤토리 만들기 (Anchor의 중요성)

 

1.Asset Store (에셋 스토어) - 반드시 로그인

unity-window-asset store 경로

 

=>  Search online 클릭하면 (옆에 네모를 체크해주면 이 다음부턴 바로 웹페이지로 이동) 웹페이지로 이동 후 원하는 에셋 검색후 결제하고 사용할수 있다 (무료 에셋도 존재)

* 한글로도 사용할수는 있으나 모든 에셋이 영어로 존재하기 때문에 한국어 검색은 불가 

 

 

 

 

 

 

2. 에셋 이미지 편집 

 

이미지를 억지로 늘리거나 줄일때 

깨짐 없이 깨끗하게 유지시키기 위함

 

->sprite Editor 클릭 초록점을 늘릴공간으로 위치조정

   후 이미지를 넣을 곳에 Image Type-Sliced로 변경

* simple은 거의 안씀

*canvas 가 줄면 같이 줄게 하기 위해선 Shift+Alt 로 수정후 사용

 

 

 

 

 

 

 

 

3.panel -title-text(textmeshpro) 

(기존 ui-text는 해상도가 살짝 깨짐 but! 새로 생긴 ui-text-textmeshpro는 깨짐이 없다 )

폰트 다운 후 - 폰트 에셋으로 다운 후 사용

 

4.스크롤 만들기

 

ui-scroll view 깨끗함을 원하면 Scrollbar Horizontal/Scrollbar Vertical 삭제 가능

 

5. 컨텐츠 만들기 

viewport-content에 ui-image 여러개 추가 후  content에 컴포넌트 grid layout group/content size pilter 추가

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Slot에 만든 image는 false 상태

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.script

 

inventoryui 스크립트 생성

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class InventoryUI : MonoBehaviour
{

    [SerializeField] GameObject inventoryPanel;//활성,비활성

    bool activeInventory; //엑티브 상태
   
    void Start()
    {
        inventoryPanel.SetActive(false); //게임 시작하면 감춰라
    }


    void Update()
    {
        if (Input.GetKeyDown(KeyCode.I)) // on/off 방식
        {
            activeInventory = !activeInventory;
            inventoryPanel.SetActive(activeInventory);
        }
    }
}

 

 

inventory 스크립트 생성

using System.Collections;
using System.Collections.Generic;
using UnityEngine;



public class Inventory : MonoBehaviour
{
    //소유한 아이템 저장
    List<Item> itemList = new List<Item>();
  
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

 

item 스크립트 생성사용자 정의 자료형이라 상속X 다만 다른 스크립트에서 상속받길 원한다면 [system.serializable] 선언

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[System.Serializable]

public class Item //사용자 정의 자료형
{

    public enum ItemType { Eqipment, Consumables, Etc }
    public ItemType itemType;
    public string itemName;
    public Sprite itemIcon;
}

 

FieldItem 스크립트 생성 후 prefab Food&Soda에 적용

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FieldItem : MonoBehaviour
{
    [SerializeField] Item item;


}

 

 

 

 

 

 

 

728x90

'유니티' 카테고리의 다른 글

18  (0) 2023.04.13
17  (0) 2023.04.12
16  (0) 2023.04.11
15  (0) 2023.04.10
14  (0) 2023.04.07