유니티

패스트캠퍼스 환급챌린지 18일차 : 한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지 강의 후기

hokim 2025. 11. 29. 21:26

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://fastcampus.info/4oKQD6b

 

학습시작
학습종료
수강인증
학습인증샷(게임시간/경험치바/몬스터 hp 바)

 

오늘은 ui와 이펙트/사운드 내용을 다 들어서 뱀서라이크 기본 구현 파트가 끝났다!

아니 근데 왜 유료 에셋을 사용하시는 건지 잘 모르겠다. 위치에 따라서 효과가 나타나는 무료 vfx 에셋을 못찾아서 그냥 이펙트를 넣었다. 강의에서는 무료 에셋만 사용해주셨으면ㅠㅠ

 

몬스터의 ui가 정면을 보게 하는 코드가 있었는데, 설명을 안하고 넘어가셔서 잘 모르겠어서 좀 더 생각해봤다.

billBoardTransform.LookAt(
	billBoardTransform.position + cameraTransform.rotation * Vector3.forward,
	cameraTransform.rotation * Vector3.up
);

- cameraTransform.rotation * Vector3.forward : 카메라가 바라보는 앞 방향이다. cameraTransform.forward랑 같다고 보면 된다.

- billBoardTransform.position + cameraTransform.forward : 빌보드 위치에서 카메라 뱡향으로 1만큼 이동한 위치이다.

- cameraTransform.rotation * Vector3.up:  빌보드의 축을 카메라의 축과 동일하게 변경한다.

 

정리해보면 결국 카메라의 각도와 빌보드의 각도를 동일하게 만드는 것이 의도인 것 같아서 코드를 아래와 같이 변경했다.

billBoardTransform.rotation = cameraTransform.rotation;

 

이 코드도 아주 잘 동작했다!

 

이번에는 주로 ui 작업을 했는데, 신기하게 매니저를 캔버스에 붙이지 않고 약간 중간다리처럼 사용했다.

UIManger는 MonoBehavior가 붙지 않은 일반 클래스로, 중간자로서 delegate를 관리한다. 그리고 캔버스에 HUDComponent 라는 스크립트를 붙여 여기에서 UIManger의 delegate에 함수를 등록한다. 그리고 사용하는 쪽에서는 싱글톤 UIManger 의 Instance에 접근해서 함수를 호출한다.

나는 캔버스에 매니저 붙일 생각만 했는데, 모든 매니저는 게임 매니저가 관리한다는 원칙에 잘 부합한 내용이었다. 

 

뭔가 실습 듣다보니까 반복되는 내용이 많아졌기도 하고, 벡터 방향같은 걸 계산하는게 좀 서투른 것 같아서 내일부터는 게임수학을 들으려고 한다.