인벤토리 만들기 (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;
}