0430_프리팹 된 보스에게 데미지가 제대로 안들어감 문제 기존 코드는 객체를 직접 public으로 받아서 데미지를 깍았음. -> 문제 발생, 퍼블릭으로 뚫은 객체의 Boss 스크립터를 받기 때문에, 데미지가 안 들어가는 경우가 생김 해결 public으로 바로 받는게 아니라, 히트를 하는 유닛의 스크립터를 GetComponent로 가져와서, 변수에 넣어준다 (이러면 히트된 유닛의 스크립터를 가져올 수 있음) 그리고 그 변수에 체력의 값을 깍아준다. C#/문제해결 2021.04.30
0429_ R&D 보스 때린 후 사망 -> 아이템 떨구기 -> 먹으면 사라짐 ## 게임을 제작할 때는 항상 타임 테이블이나 스케쥴 표를 사용해서 어떤 것을 몇시까지 하는지 정하고 하자 습관을 들일 필요가 있음 ----- 0.보스를 만들어줘서, 전에 했던 몬스터와 같은 구조를 넣어준다. 체력을 가지고, 공격을 입으면, 데미지를 입는다 -> 나중에는 상속 구조로 해야할 것 (체력을 가진 것들, 죽을 수 있는 것들 등등 ) 1. 먼저 보스가 데미지를 입고 체력이 0이 되면 죽는 애니메이션을 만들어준다. 이건 Animator로 되어있기 때문에, Trigger 를 달아준다. void Update() { if (this.bossHp { itemGo.SetActive(true); }; } var itemGo = Instantiate(this.itemPrefab); 아이템 프리팹을 하이라키에 .. 유니티 챌린지/서브프로젝트 2021.04.29
0429 _ 서브프로젝트 R&D 캐릭터 조이스틱으로 움직이기 0. 조이스틱을 움직이면 들어오는 값을 찾고, 그 값을 이용한다. 먼저 캐릭터가 움직이게 한다 .. 1. 보는 쪽으로 각도를 바꾸게한다. 키워드 위주로 검색해서 찾았다 . 참고 영상 (2) THIRD PERSON MOVEMENT in Unity - YouTube 2. 돌리고 나서, 캐릭터의 방향(forward)으로 움직이게 한다. 돌리고나서, 앞 방향으로 움직이게함 3. 움직임 애니메이션 넣기 4. 버튼 클릭시 공격하기 isAttack 부울값으로 하나 만들어준다. 그래서 공격 중 일때는 true로 만들어서 걷기나 기본 애니메이션이 나오지 않게 해준다. 그리고 애니메이션이 끝나는 시간을 코루틴에서 WaitForSeconds 써서 지연시켜주고, 부울 값을 false 로 다시 바꿔준다. -------- 캐릭터.. 유니티 챌린지/서브프로젝트 2021.04.29
0429_ 오브젝트 가져오기, 자식의 컴포넌트 가져오기 문제. this.anim = this.model.GetComponent(); 이러면, 모델에 애니메이터가 없어서 오류 -- 해결 이러면 밑에 자식에 있는 애니메이터를 가져옴 C#/문제해결 2021.04.29
0428 _ 데이터 불러와서 캐릭터 조립하기 캐릭터의 데이터를 기반으로 처음에는 캐릭터가 씬에 없다가, 조립해서 나오는 걸 하려고합니다. 0.먼저 캐릭터의 데이터가 필요합니다. 프리팹 네임이 중요, 네임으로 프리팹을 찾아서 넣을 것 이기 때문에. 1.데이터를 관리해주는 곳에서 딕셔너리를 만들어서 characterDatas에 값을 넣어준다. 2. 프리팹만 넣는 딕셔너리를 하나 만들어 줘서, 데이터의 프리팹 이름으로 프리팹 딕셔너리를 넣어준다. 프리팹이 들어갈 딕셔너리를 만들어준다. foreach (var pair in this.diccharacterDatas) characterDatas 의 값을 pair에 넣어준다. var go = Resources.Load(pair.Value.prefab_name); 리소스 폴더에 들어가 있는 프리팹들을 chara.. Unity/UIUX프로그래밍 2021.04.28
0428 _ 레이캐스팅 쏘고 캐릭터 이동하기. 0. 먼저 레이캐스팅이 화면에 잘 표시되는지 확인해본다. ★★박스 콜라이더 영역이 지정이 되야지 부딪치는 판정이 된다. bg에 콜라이더가 없을 때 레이는 나가지만 좌표가 안 뜬다. 콜라이더가 있을 때 1. 확인차 캐릭터를 그 좌표값으로 바로 이동 시켜본다 순간이동처럼 그 좌표로 바로 이동한다. 이제 방향 * 속도 * 시간 으로 점자 그곳으로 이동하게 만들어주면 된다. 2. Hero에게 Move 메서드를 만들어준다 (캐릭터 내에서 작동하는 기능이니깐 캐릭터에게 메서드를 달아줌) 코루틴을 사용할 것이고 Move 할때 만약 코루틴이 돌고있다면 기존꺼는 종료시키고, 시작하게 해야한다. 종료하지 않으면 계속 그 위치로 가려고하고 다시 새로운 곳으로 가고, 이상한 움직임이 나올 것이다. 3. 움직이는 코루틴 만들기.. Unity/UIUX프로그래밍 2021.04.28
0428_ 레이캐스트 쏘고난 후 코르틴으로 움직이는데 순간이동을 함 문제점 해결 yield return null; return 이 while이 다 끝난다음에 리턴이 되서 프레임이 증가하는게 아니라 딱 끊겨서, 저렇게 이동을 함. yield return null; 를 While문 안으로 넣어줘야한다. C#/문제해결 2021.04.28
0427 _ NGUI Mission 만들기 데이터 연동 0. 먼저 스크롤 뷰를 만들어 주고 1. 거기에 들어가는 미션를 만들어준다 (NGUI로 만들어줌) 2. 다 만들면 프리팹으로 전환해놓기 3.데이터를 불러올 스크립터와 맵핑할 스크립터, 아이템(미션)이 초기화(생길때)값을 넣어줄 스크립터를 만든다. 4.데이터 불러오고, 초기화로 값 넘겨주고, 아이템에서 퍼블릭으로 각각 스프라이트 등등을 받아서 그 값을 바로 대입해서 바꿔준다. 완성된 것 ---- using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Newtonsoft.Json; using System.Linq; public class MissionTest : MonoBe.. Unity/UIUX프로그래밍 2021.04.27
0427 _ NGUI에서 스프라이트 데이터 불러올 때 이미지 snap 하기 문제 스프라이트를 가져올 때 이미지가 snap이 되지 않은 상태에서 가져온다. 해결 객체에서 초기화 할때 .MakePixelPerfect(); 를 해주면 스냅이 된다. C#/문제해결 2021.04.27
0427 _ NGUI Shop Data 연동하기 0. 스크롤가 모두 완성되고, 프리팹도 준비가 다 되었으면 온/ 오프로 껏다 켯다를 해줄것이다. 기본이 되는 프리팹인 UIListItem를 준비해준다. Ad가 붙은 프리팹임 ----- 1. Data.Json 파일을 준비해준다. Json 파일을 만들어준다. 데이터값이 들어갈 부분을 먼저 찾아서 정리하고, 값을 넣어준다. 2. 맵핑을 할 ShopData 클래스를 만들어준다. 3. 각각 아이템 스크립터를 만들어준다. ★ 기본 아이템 클래스를 Ad 아이템이 상속하는 구조로 만들어준다. 기본 아이템 구조 #핵심 public virtual void Init(ShopData data) // 으로 test나 datamanager에서 오는 데이터를 받아서, 직접 넣어준다. ★ad아이템은 기본 아이템을 상속받아서 위에서 .. Unity/UIUX프로그래밍 2021.04.27