스파르타 내배캠 28일차 TIL
C1조_ 1조라도 안 보이면
게임 개발 숙련 주차가 시작됐다. 이번주는 유니티 3D를 배우게 된다. 간단한 3D RPG 생존 게임을 진행하게 될 것 같다. 오늘은 발제와 SA, 2시간 특강 때문에 1-4까지 밖에 듣지 못했다. 앞으로 월요일까지 들어야지 개인 프로젝트를 할 수 있을 것 같은데 스케줄을 맞출 수 있을지 의문이다. 그래도 해봐야지!
오늘 배운 것은 InputSystem 복습과 RayCast를 이용하는 방법에 대해 배웠다.
InputSystem
먼저 Unity에서 제공하는 InputSystem 에셋을 다운 받는다.
그 후, Project에서 Input Actions을 하나 생성한다.
생성하고 Edit asset을 통해 필요한 행동에 맞는 액션을 만든다.
Action Type에서 만들고 싶은 행동에 맞는 키를 생성할 수 있다. 예를 들어 플레이어의 움직임은 Vector 값을 필요하기 때문에 Value-Vector2를 얻는다고 설정하고 움직이는 방향에 키를 설정한다. 또 다른 예로, 만약에 E 키로 아이템을 얻고 싶다면 Value가 아닌 Button을 선택하고 E를 지정해주면 된다.
이런 식으로 원하는 행동에 대한 값을 정하고 나면 player 오브젝트에 player input 컴포넌트를 추가하고 만들어둔 inputAction을 넣어준다.
지금부터 중요한 내용이다. 그림에서는 지정된 행동을 가져와 사용할 수 있는 방법 중 invoke Unity Events를 사용했다. 이 방법은 UI-Button 컴포넌트에서 이벤트를 사용한 것과 같은 방법이다. 그림으로 설명하자면, event에 player 스크립트를 정용하고 Player에 정의한 On행동() 메소드가 불러와지게 설정한 것이다. Behavior에서 이 방법을 선택할 수 있는데 종류는 다음과 같다.
간단히 정리하면
- Send Messages : input system에서 정의한 함수 사용(OnMove, OnRun, etc...)
- Broadcast Messages : 위와 같지만, 같은 경우 하위 계층 오브젝트들까지 제어 가능
- Invoke Unity Events : 유니티 이벤트 사용
- Invoke C Sharp Events : C# 이벤트 사용
직관적으로 움직임을 정의하려면 Invoke Unity Events가 제일 괜찮을 것 같다. 이 이후에는 움직임 로직을 작성해야 하는데 움직임을 구현하는 방식은 워낙 다양해서 이는 생략하겠다.
Raycast는 오늘 강의 마지막 중에 배운 내용인데 강의를 따라 구현하던 중 의문 점이 생겨서 이건 내일 튜터님께 물어보고 작성을 해야할 것 같다. Raycast를 어떻게 왜 이용하는지는 이해했지만 강의 내에서 어떻게 범위를 정했는지 아직 이해하지 못했다.
마무리하며
TIL 분량과 질이 천차만별인 블로그는 내 거 밖에 없겠지...? ㅎㅎ 하지만 프로젝트를 진행할 땐 아직 TIL 쓸 거리가 많이 없어서 잘 못 적는 것 같다. 적을 내용이 있다면 오늘처럼은 적을 수 있을 것 같은데... 그래서 다음 프로젝트 때는 과정을 한 번 적어볼까 한다. 오늘부터 다시 잘 적기로 했으니 쭉 잘 쓸 수 있기를. 아무튼 내일 여쭤보고 Raycast 수정해야징
'Unity > TIL' 카테고리의 다른 글
3번째 개인 프로젝트 구상 및 플레이어 작업 (0) | 2024.05.28 |
---|---|
Unity 조명(Lighting) (0) | 2024.05.27 |
3번째 팀 프로젝트 제출 및 마무리 (게임개발 입문) (0) | 2024.05.23 |
TIL (1) | 2024.05.22 |
Unity 컬렉션 (1) | 2024.05.21 |