프로젝트/[인프런] 게임 프로그래머 입문 올인원

[게임 프로그래머 입문 올인원] 2D게임 프레임워크 : 카메라, 레이어 (105강)

순정법사 2024.08.02

A. 카메라 

1. 카메라 만들기

a. 카메라 생성하기

카메라는 컴포넌트로 만들어줘서 객체에 붙여줄예정

 

먼저 언리얼 버전으로 만들거라 Start로 되어있던 함수들을 모두 수정해주고

 

카메라를 사용할 예정이니 Owner도 만들어준다

 

Comp를 기반으로 한 CameraComp생성

 

 

카메라의 위치를 주인의 위치로 계속 업뎃시켜준다 / 보정도 포함

 

+ 씬매니저한테 카메라의 위치를 업뎃시켜준다

 

b. SceneManager에 카메라 위치 넣어주기

어쨋든 카메라는 씬을 촬영하는 것이기때문에 포지션을 씬매니저한테 업뎃시켜줘야 함

 

카메라를 설정/관리할 내용을 넣어주고

 

c. Player한테 카메라 컴포 붙여주기

이때 player는 actor소속이라 컴포를 넣어주는 걸 actor에서 만들어주기

 

d. Actor에 컴포 붙여주는 기능 생성하기

액터에게 컴포를 붙일 수 있게 만들어주고

 

기능을 구현

 

당연히 컴포를 렌더링하는 부분까지 만들어준다

 

e. 이미지 위치 변경해주기

이제 플레이어에게 카메라도 넣어줬고,

카메라의 위치에따라 플레이어와 배경이 변경되어야 하니

위에서 구현한 카메라의 포지션을 바탕으로  x,y값을 변경해준다

 

 

 

여기선 이렇게 배경과 애니메이션 두개를 수정해줌

 

그럼 여기까지 완성!

 

 

 


B. 레이어

1. 레이어

a. 레이어를 만들어야 하는 이유

레이어를 만들지 않으면 아래와 같이 먼저 렌더링 된 부분이 생성되어 코드의 순서가 매우 중요해지는데

 

 

만약 배경화면과 플레이어의 코드 순서가 바뀌면 플레이어가 안보이게된다,

💥 즉 유지보수에 어려움이 생기고 코드가 복잡해짐

 

따라서 이미지의 레이어 순서를 매겨 좀 더 편하게 작업하는게 좋다

 

 

2. 레이어 생성하기

a. enum에서 레이어 순서 생성

layer 순서를 정하기 위해  enum에서 LAYER_TYPE을 하나 정의해주고

 

배경->오브젝트->UI순으로 진행된다

 

b. Actors를 Layer별로 관리하기

Actor에 layer 특성을 넣어주고

 

c. DevScene 코드 수정하기

최종적으로 레이어를 담당하고 있는 DevScene에서 코드를 전반적으로 수정해준다

 

AddActor, RemoveActor를 생성하고, 액터에 인덱스를 달아주기

 

레이어에 따라서 Actor를 순서를 정해주고 지워주는 것 까지 생성

 

레이어를 추가해서 더해준다

 

인덱스니까 for문을 하나 더 추가해서 돌려주고

 

추가로 당연히 메모리관리도 해줌

 

위처럼 순서를 바꿔서 코드를 작성해도 오른쪽처럼 플레이어가 잘 나온다 ^_^

 


 

 

 


출처 : https://www.inflearn.com/course/%EA%B2%8C%EC%9E%84-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8-%EC%9E%85%EB%AC%B8-%EC%98%AC%EC%9D%B8%EC%9B%90-rookiss#curriculum

 

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버 -

어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로 게임 프

www.inflearn.com