반응형

Unity/UIUX프로그래밍 25

0423 _ 스크롤에 만든 데이터 불러오기

스크롤 만들었다.. 데이터불러오기 테이블 부터 만들기 필요한 것을 먼저 정리한 후 Json 파일로 만들어준다. 맵핑할 스크립터를 만들어준다 . 관리를 해줄 데이터매니저를 만들어서 로드를 해준다. 데이터는 리소스 폴더에 넣어 줌 데이터 로드를 끝나면 -- 로드가 끝나면 아이템의 프리팹을 만들어보고, 로드된 데이타가 잘 출력되는지 확인을 한다. 0.먼저 아이템프리팹에 스크립터를 달아주고, text 변수를 넣어서 Init에 받아서 변경시켜준다. Init 으로 외부(상위 클래스)에서 전달을 받으면 텍스트를 변경 시켜준다. 1. 관리해주는 스크립터에서, 프리팹을 달아주고, 값을 전달해준다. public GameObject listItemPrefab; public Transform contents; 생성할 프리팹을..

0422_UILevelUp 애니메이션 만들기

목표 레벨업을 하는 UI를 만든다음에 애니메이션을 하는 것을 만들 것이다. 0. 먼저 가장 뒤에 있는 bg의 ui를 만들고 (order 0) 가장 바깥쪽에 있는 Main 캔버스를 만들어서 작업을 한다.(order 3) 그 다음 UIeff 캔버스를 만들어준다. (order 2) 이렇게 만들어야지 애니메이션을 따로 줄 수도있고, 이펙트와 메인의 위치가 겹치지 않는다. 1. 메인의 애니메이션 키를 잡아준다. 메인과 이펙트의 애니메이션을 잡았다면 스크립터를 생성한다. 2.생성된 스크립터에 버튼을 누를시 애니메이션이 나오게 한다 . 애니메이션이 잘 작동하는걸 볼 수 있다. 3. 애니메이션이 플레이 될 때 이펙터도 같이 나오게 한다. 이벤트를 달아서 호출한다.

0422_애니메이션 후 이펙트 터지게하기

애니메이션 작동 후 이펙터가 나오게 하기 0.먼저 스타를 만들어서 애니메이션을 만들어준다. 1. 그리고 버튼하나를 만들어 줘서 이 버튼이 눌리면 애니메이션이 작동이 되게 해준다. 2. 테스트를 하기 위해서 스크립터 생성 및 달아주기 3. 버튼과 애니메이션을 직접 받아서 버튼 클릭 시 애니메이션이 작동하게 해준다 . 4. 애니메이션이 끝났을 때를 알기위해서 이벤트를 사용해서 끝나는 시점을 호출한다. UIAnimationreciver 라는 스크립터를 사용해서 끝나는 시점을 알려준다. OnComplete() 메서드 시 , 델리게이트 onCmplete를 소환해준다. 이펙트를 배열로 받아넣고, onComplete 대리자가 호출 시 이펙터를 배열에서 foreach문으로 꺼내서 .Play를 해줍니다 . 5.애니메이션..

0422_ UI 팝업 창 애니메이션 하기

0. 먼저 구조대로 UI를 만들어줍니다. 1. main를 잡고 애니메이션을 Create를 해주고, 키를 넣어줍니다. 키를 넣을려면 녹화버튼을 누르면 씬에서 작업하는 것들이 키로 들어갑니다 . 스타는 따로 스크립터에서 꺼주고, 팝업 애니가 끝났을때 켜줄 것 입니다. 테스트할 스크립터를 만들어서 버튼을 누르면 애니메이션이 작동하도록 한다. ---- 2. 스타 애니메이션을 만들고, 코루틴을 활용해서 필요할때 애니를 불러오고 재생을 한다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class testComplte : MonoBehaviour { public But..

0421_ TestUIStage // 데이터 가져와서 사용하고 팝업에 띄우기

목표 버튼을 누르면 데이터가 로드가 되고 그 로드된 데이터 기반으로 스테이지에 대한 정보와 보상이 나오는 것을 테스트해본다. 0. 먼저 클릭을 할 버튼을 만들어 준다. 저 버튼을 누르면 팝업을 뜨면서 데이터가 로드가 되는 시스템으로 만들 것이다. 1. TestUIStageItem에 대한 스크립터를 만들어 준다 . id 값은 데이터에서 받아야하지만, 우리는 일단 직접 넣어주기로 함. txtStageNo 는 현재 버튼에 나오는 스테이지 관한 정보 클릭을 하기 위해서 버튼을 받는다. Init 초기화 부분 public void Init() { var data = DataManager.GetInstance().dicStageDatas[this.id]; this.txtStageNo.text = data.stage_..

0421_ UIStage 페이지 넘기기

Next 버튼 Prev 버튼을 누르면 페이지가 넘어간다. 먼저 변수에 버튼을 받아준다. 현재 페이지와 총 페이지에 대한 변수도 만들어준다. 스타트 부분에서 토탈페이지 = 최대 스테이지 / 배열의 총 길이 를 하면 토탈페이지 값이 나온다. 그리고 버튼을 누르면 기능을 하는 메서드가 호출되도록한다. public void NextPage() { if (this.currentPage == this.totalPage) { return; } this.currentPage++; Debug.LogFormat("currentPage: {0}, totalPage: {1}", this.currentPage, this.totalPage); var startIndex = (this.currentPage - 1) * this.a..

0421_유니티 데이터 저장하는 것

dataPath 와 persistentDataPath 방식이있음 ----- 먼저 신규 유저 데이터 저장하는 방법 테스트 씬을 만들어 저장 버튼과 로드 버튼을 만들어 준다. SaveTest 빈 오브젝트를 만들어주고, SaveTest 스크립터를 만들어서 넣어준다.. 그리고 빈 버튼을 받아서 테스트를 해준다 . 로그가 잘 뜨는지 MonoBehaviour를 상속받지 않는 스크립터를 만들어준다. 먼저 StageInfo 는 UIStage에서 필요한 데이터를 가지고있는 Info 스크립터이다. GameInfo 는 StageInfo의 배열을 만들어서 넘겨주는 역할을 한다. ----- persistentDataPath 방식으로 데이터를 저장을 할 것이다. private void Start() { var path = str..

0421_ UIStage

위와 같은 구조로 먼저 UI를 구성을 해준다. UIStageItem(complete, doing, lock이 들어가 있는)를 만들어서 프리팹을 해주고, 배치를 해준다. ---- using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UIStageItem : MonoBehaviour { public enum eStageItemType { COMPLETE, DOING, LOCK } public GameObject completeGo; public GameObject doingGo; public GameObject lockGo; public GameObject[]..

0420_아이템 데이터 // 데이터매니저 싱글턴 사용하기

0. json 파일을 만들어준다. 1. 뉴톤 제이슨을 유니티로 임폴트한다. 2.맵핑해줄 ItemData 스크립터를 생성해준다. 3. ItemData를 수정해줍니다. 4. 아이템을 관리할 DataManager (싱글턴으로) 스크립터를 만들어 준다. 그리고 딕셔너리 변수를 선언해줍니다. 5. UIInventory 에서 기존에는 스프라이트 네임을 직접 넣었지만, 싱글턴을 인스턴스해서 딕셔너리로 id로 값을 찾아서 값.sprite_name (ItemData에 맵핑된)값을 찾아서 경로로 넣습니다 var data = DataManager.GetInstance().dicItemDatas[id]; id 값을 입력해서, DataManager.GetInstance // 클래스 내부로 접근 가능 string spName =..

반응형