수업 중에 개념 설명이 부족한 부분을 정리했습니다.
1. 아이템 획득 이벤트 처리(여러 개체 생성 가능)

위 이미지처럼 아이템 오브젝트별로 On Trigger Enter 2D로 충돌이 감지가 되는 순간,
Event Manager로 신호가 전달되도록 구성해야 함.
그리고 Event Manager가 해당 UI를 불러와서 Score Value를 업데이트하도록 요청해야 한다.
이 구조로 각 오브젝트는 감지, Event Manager는 이벤트 실행, Scroe UI는 출력 세 가지 역할을 각각 관리할 수 있다.
이런 구조를 만들어서 최종적으로는 Event Manager에서 전체적인 게임 규칙에 대한 처리를 담당하도록 만드는 것이 중요함.
1-1) Item Object 세팅

스프라이트 이미지를 드래그하여 아이템 오브젝트 1개를 만든다.
Sprite Renderer 컴포넌트에서 Order In Layer 속성값을 1로 선택하고, 원하는 색상을 고른다.

해당 오브젝트에 Box Collision Component를 생성한다.
Collision Component에서 isTriggered 속성에 체크한다.
이러면 해당 오브젝트가 다른 오브젝트를 밀어내지 않고, 겹쳐진 상태(Collision)을 감지하는 역할만을 한다.


이제 Script Machine 컴포넌트를 생성하고, On Trigger Enter 2D 노드를 생성한다.
아이템이 충돌되고, 플레이어 오브젝트와 충돌했는지를 판별한 뒤, 메시지를 출력하는 테스트용 그래프를 제작한다.


정상적으로 출력된다면, 오브젝트를 사라지게 해서 (Destroy 그래프) 아이템을 획득한 것처럼 안내한다.


그리고 Trigger Custom Event 그래프를 붙여서 EventManager가 충돌 처리를 감지하도록 한다.
Find(GameObject)로 오브젝트를 지정하는 것도 잊지 말자.
이 때 Argument를 1로 바꾸고, Object Variable에 Score Variable(int, 10)을 등록한 뒤,
Get으로 값을 가져와 Trigger Custom Event 그래프에 연결한다.
이를 If문 True 시 처리 방식에 정의하고, 이후 오브젝트가 삭제되도록(Destroy) 설정한다.
1-2) Score UI를 제작한다.


하이어라키 창에서 Create > UI > Canvas를 먼저 생성한 뒤에, Create > UI > Text mesh Pro를 생성한다.
이후 부모로는 Canvas, 자식으로 Text Mesh pro가 되도록 배치하고, Text Mesh pro는 Score로 이름을 변경한다.

주의할 점은 Cavans, UI 요소들은 배치 위치가 위와 같다.
게임 오브젝트 위치와는 다른 곳에 위치하기 때문에 주의해야 한다.
1-3) Event Manager 세팅


하이어라키 창에서 마우스 오른쪽 버튼 > Create Empty로 빈 오브젝트 2개를 만든 뒤,
위와 같이 부모 자식으로 배치하고 이름을 Manager, Event Manager 두 가지로 바꾼다.

Script Machine 컴포넌트를 붙이고, EventManager 스크립트 그래프 애셋을 생성한다.


이후 이벤트 매니저에서 Item Object와 동일한 Custom event 노드를 만든다.
만든 노드에서 Argument를 1로 바꿔 전달받은 Score 값을 사용할 수 있도록 만든다.

Find(Game object) - Get Compoenent(Text Mesh Pro UGUI)로 해당 UI를 호출한 뒤,
Score UI에서 Text값을 잘 가져오는지 테스트한다.


정상적으로 잘 가져오면, Score UI의 기존 Text 값과
현재 추가된 값을 새로 가져와 더한 후 갱신하도록 한다.
(이 과정이 없으면 그냥 10점씩만 추가될 것. 이전 값과 항상 붙이도록 해야 한다.)
주의할 점은 형 변환 노드를 써야지만 정상적으로 출력이 된다.
String → Int는 Parse()를,
Int → String은 (To String)을 사용한다.
1-4) 테스트 : 여러 개의 아이템을 맵 여기저기에 배치

맵 여기저기에 아이템을 배치하면 아이템에 닿을 때마다 아이템이 반응하는 것을 확인할 수 있다.
2. 캐릭터가 굴러가는 문제 해결하기
RigidBody 2d로 캐릭터를 이동시킬 때 다른 캐릭터와 부딪히는 문제 발생 시 해결 방법.

Player의 RidgidBody2d 컴포넌트의 속성 중, Constraint라는 속성을 찾는다.
하위 메뉴 중 Freeze Rotation을 체크하면 캐릭터가 물리적으로 회전하지 않는다.
3. 단일 애니메이션 처리
타이틀 등에 상태 관리 없이 애니메이션 처리만을 하고 싶다면,
Animation 컴포넌트를 붙이고 애니메이션 클립을 생성하면 된다.


대부분의 애니메이션 클립은 자체 생성을 하게 되면 서로 인식을 못 하는 경우가 많으므로,
반드시 애니메이션 컴포넌트를 먼저 생성하고, 클립 생성 후 연결 지은 뒤에 애니메이션을 기록하도록 하자.
4. 계산기.

핵심 그래프 소개. Text Mesh pro UGUI의 값을 가져와서
두 값을 연산하고 하나의 텍스트에 붙여넣는 작업 진행.
(11강 강의자료에 해당 내용 있음)
'목원대학교 강의자료' 카테고리의 다른 글
| 목원대학교 강의자료 링크 (0) | 2025.09.16 |
|---|---|
| 목원대학교 14강 (0) | 2025.06.16 |
| 목원대학교 13강 (0) | 2025.06.11 |