오늘 구현한것 :
[클리어 UI 확장] // [카드 맞춰지는 연출] // [기타 디자인적 구현 등]
클리어 UI 확장
게임이 클리어될때 나오는 UI를 확장시키고, 각 조원이 초상화를 선택시 소개 창이 뜨도록 해줬다.
한 스크립트에 창을 키고 끄는 기능을 만들어 주고
카드 맞춰지는 연출
이부분은 조금 어려웠는데, 구현하고자 하며 접근해본 방법은 이러했다 :
각 카드의 주인별로 초상화를 배치, 위치값 저장 -> 저장한 위치값을 카드 스크립트에 전달, 카드의 인덱스별로 주인(목적지)를 설정. -> 카드가 맞춰질때 이동하면서 Destroy.
각 카드의 주인을 상징하는 초상화를 미리 배치해주고, 그 위치값을 GameManager에서 public을 통해 받아줬다.
미리 함수를 선언해주고
인덱스를 불러오는 함수에 if문을 추가해서 각 카드의 인덱스별로 목적지를 다르게 설정해줬다.
근데 여기서 " || " 와 " && " 를 헷갈렸기 때문에 많이 고생했다;;;;
그리고 Update문에서 이동을 실행시킬 if문을 만들어줬다. (트리거는 설정해둔 bool값으로, 카드가 매치되는 로직에서 true로 만들어주게 했다)
여기서 새로 배운 부분이 Vector2.Lerp, 이 단어는 0에서 1사이의 값으로두 위치 사이를 선형으로움직이는 단어다.
풀어서설명하자면 :
Vector2.Lerp( A , B , 0 ) 라고 썼으면, A에서 B로 이동하는 간격을 0에서 1 사이의 값으로 움직인다는 거니까 이 경우엔 출발점인 A에 와있게 되고, 만약 Vector2.Lerp( A, B, 1) 라고 썼다면 도착점인 B에 와있게 되는 것이다.
즉 스크립트에선 Vector2.Lerp(this.transform.position, endPos, t) 라고 적었기 때문에, 출발점은 현재 카드의위치. 도착 목적지는 인덱스별로 달라진 4가지 위치중 하나, 그리고 그 진행도가 t += Time.deltaTime * speed 로 0에서부터 1로 서서히 증가하게 되는것이다.
'게임개발 > Unity' 카테고리의 다른 글
24-09-12 카드뒤집기 미니프로젝트 04 (0) | 2024.09.12 |
---|---|
24-09-11 카드뒤집기 미니프로젝트 03 (0) | 2024.09.11 |
24-09-09 카드뒤집기 미니프로젝트 01 (2) | 2024.09.09 |
24-09-06 개인 프로젝트 : Geometry Survivor 06 (1) | 2024.09.06 |
24-09-03 개인 프로젝트 : Geometry Survivor 03 (1) | 2024.09.03 |