2022. 2. 5. 03:07ㆍUnity3D/수업 내용
https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/JSON
JSON으로 작업하기 - Web 개발 학습하기 | MDN
JavaScript Object Notation (JSON)은 Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷입니다. 웹 어플리케이션에서 데이터를 전송할 때 일반적으로 사용합니다(서버에서
developer.mozilla.org
application.persistentDataPath 에는 GameInfo같은 상태가 변화하는 데이터를 저장하고,
Resources 폴더에는 스프레드시트 -> JSON같이 외부에서 가져온 데이터를 저장시키는 것 같다.
Sprite Atlas 는 텍스쳐를 많이 렌더링 할 때에 발생하는 성능 저하 이슈 때문에
생겨난 물건인 듯.
스크립트 상에서 제어하려면
using UnityEngine.U2D; 를 명시해주어야 함.
사용법은
Sprite sp = Atlas타입 변수.GetSprite("텍스쳐 파일명");
+
이미지의 크기를 스크립트에서 제어하는 사례
이하 수업 내용
<< JSON데이터를 유니티에 연동하고 UI에 표시하기 >>
1) Resources 폴더 내에 ItemData.Json파일을 둔다.
2) ItemData 매핑클래스를 만들고 id와 spriteName 멤버를 가지게 한다.
3) ItemData.json파일을 Resources.Load하고 2번의 매핑클래스로 역직렬화시키고 딕셔너리화한다.
ItemData는 InfoManager가 딕셔너리로 갖고 있다.
4) InfoManager는 추가로 ItemList라는 <Item>타입 리스트를 가지고 있다.
ItemList는 유저가 보유한 아이템을 담는 코드 상의 인벤토리 역할을 할 것 이다.
Item 클래스는 멤버로 id와 count를 가지고 있다.
5) ItemList에 유저가 획득한 아이템을 추가하는 방법은
1. 획득한 아이템의 id를 확인한다.
2. ItemList를 순회하면서 해당 id와 똑같은 id를 가진 아이템을 이미 보유하고 있는지 확인한다.
3. 이미 보유하고 있다면 보유한 아이템의 count멤버를 1 증가시킨다.
아니라면 new 아이템 객체를 만들고 ItemList에 Add한다.
6) InfoManager가 Inventory UI에게 Init()으로 자신의 ItemList와 ItemData딕셔너리를 건네준다.
7) Inventory UI 클래스는 Sprite Atlas를 갖고 있고, 인벤토리의 각 슬롯을 담당하는
UIItem 클래스 객체들을 배열로 관리한다.
8) inventory UI가 반복문으로 UIItem 배열을 순회하면서 ItemList의 Item.SpriteName에 따라
UIItem 객체가 갖고 있는 image 타입 변수에 스프라이트를 할당해준다.
9) Application.PersistentDataPath에 현재 유저가 보유한 아이템의 정보를 담은
Item_info.json을 저장시킨다.
'Unity3D > 수업 내용' 카테고리의 다른 글
22.02.14 Shop 메뉴 구현하기 (0) | 2022.02.14 |
---|---|
22.02.11 UI 기능 추가 (페이지, 해금, 재화 표시) (0) | 2022.02.11 |
22.02.03 Canvas와 UI 배우기 (0) | 2022.02.03 |
22.01.27 런타임마다 외부의 데이터로 갱신하는 법 (0) | 2022.01.27 |
22.01.26 애니메이터 임팩트 타임에 따라 적에게 피해 입히기 (0) | 2022.01.26 |