유니런_플레이어 제작

Unity 2021. 8. 2. 15:45

유니티 2D 프로젝트

2D 프로젝트의 특징 : 이미지 파일을 스프라이트 타입으로 임포트함. 기본 생성 카메라가 직교(Orthographic) 모드를 사용. 라이팅 설정 중 일부가 비활성화됨. 씬 창이 2D 뷰로 보임 -> 설정 변경이 가능하며, 2D 또는 3D로 프로젝트 모드 변경 가능

스프라이트 시트(Sprite Sheet) : 여러 이미지를 하나의 이미지 파일로 합친 것으로, 캐릭터가 연속적으로 움직이는 모습을 하나의 이미지 파일로 합쳐서 관리하는 것이 리소스 관리가 편하고 성능이 좋음

오디오 소스(Audio Source) : 오디오 소스 컴포넌트는 게임 오즈젝트에 소리를 낼 수 있는 능력을 부여함.

            Play On Awake - 오디오 소스 컴포넌트가 활성화되었을 때 최초 1회 오디오를 자동 재생하는 옵션 

오디오 리스너 : 오디오 소스 컴포넌트가 소리를 재생해도 소리를 듣는 오디오 리스너(Audio Listener) 컴포넌트가 없으면 재생되는 소리가 플레이어에 들리지 않음. 오디오 소스 컴포넌트는 소리를 내는 오브젝트 수만큼 씬에 존재할 수 있지만, 오디오 리스너는 씬에 하나만 존재해야 함

유한 상태 머신 : 애니메이터 컨트롤러는 상황에 따라 어떤 애니메이션 클립을 재생해야 하는지 저장한 지도이며, 유한 상태 머신(Finite State Machine,FSM) 모델을 사용. 유한 상태 머신은 유한한 수의 상태가 존재하며, 한 번에 한 상태만 '현재 상태'가 되도록 프로그램을 설계하는 모델로 어떤 상태에서 다른 상태로 전이하여 현재 상태를 전환할 수도 있음

 애니메이터 컨트롤러와 애니메이터 : 애니메이터 컨트롤러는 유한 상태 머신을 사용해 재생할 애니메이션을 결정하는 상태도를 표현하는 에셋이며, 애니메이터는 애니메이터 컨트롤러를 참고하여 게임 오브젝트에 애니메이션을 적용하는 컴포넌트

애니메이터 창 : 애니메이터가 사용 중인 애니메이터 컨트롤러의 상태도 편집. 파라미터를 추가하여 전이의 조건으로 사용 가능.

애니메이터에서 트리거 타입의 파라미터 : 트리거 타입의 파라미터는 트리거를 발동시키는 방식으로 사용하기 때문에 값을 할당하지 않음

정렬 레이어 추가

정렬 레이어 : 스프라이트 렌더러 컴포넌트가 그리는그래픽의 앞뒤 정렬은 트랜스폼 컴포넌트의 위치값과 상관없음. 2D 게임 오브젝트가 그려지는 순서는 스프라이트 렌더러의 정렬 레이어(sorting Layer)가 결정. 유니티에서는 가장 아래쪽 정렬 레이어가 가장 앞쪽에 그려짐.

게임 UI 만들기

고정 픽셀 크기 : 캔버스는 UI를 잡아두는 틀이기 때문에 캔버스의 크기나 가로세로 비율이 달라지면 캔버스에 배치된 UI의 모습도 다르게 보임. 캔버스의 크기는 게임을 실행 중인 화면의 해상도로 결정. 캔버스 컴포넌트의 UI 스케일 모드의 기본 설정인 고정 픽셀 크기는 캔버스 크기가 변해도 배치된 UI 요소의 크기를 변경하지 않기 때문에, 고정 픽셀 크기에서는 UI의 크기와 배치가 사용자의 화면 크기에 따라 달라지는 문제가 발생할 수 있음

화면 크기에 따라 스케일 : UI의 크기와 배치를 일정하게 유지 가능. 실제 화면과 기준 해상도 사이의 화면 비율이 다른 경우 캔버스 스케일러 컴포넌트의 일치 필드 값이 높은 방향의 길이를 유지하고 바른 방향의 길이를 조절

캔버스 스케일러 설정 : 캔버스 스케일러 컴포넌트에서 설정

게임 매니저 만들기

싱글턴 패턴의 필요성 : 게임 매니저 오브젝트는 단 하나만 존재해야 하며, 어떤 곳에서도 손쉽게 매니저 오브젝트에 접근 가능해야 함. 싱글턴 패턴을 사용하면 게임 매니저가 씬에 단 하나만 있게 하고, 어느 곳에서도 게임 매니저에 즉시 접근할 수 있게 만들 수 있음

static 변수 : static 변수는 메모리에 단 하나만 존재하고 모든 오브젝트가 공유, 클래스 이름과 점(.) 연산자를 이용해 접근할 수 있다는 특징을 가진 변수로 싱글턴을 구현하는 데도 활용

오브젝트 풀링(Object Pooling) : 초기에 필요한 만큼 오브젝트를 미리 만들어 '풀(웅덩이)'에 쌓아두는 방식으로 풀에 오브젝트를 생성해둔 이후에는 새로운 오브젝트가 필요할 때 새로운 오브젝트를 생성하지 않고 풀에 있는 오브젝트를 가져다 쓰며, 오브젝트가 필요 없을 때는 오브젝트를 파괴하는 대신 오브젝트를 비활성화하고 풀에 반환함. 게임 끊김(프리즈) 현상을 줄일 수 있음

완성된 2D 게임

 

'Unity' 카테고리의 다른 글

좀비 서바이버 멀티플레이어  (0) 2021.08.10
좀비 서바이버  (0) 2021.08.09
공간과 움직임  (0) 2021.07.30
방향, 크기, 회전  (0) 2021.07.30
닷지_게임 매니저와 UI, 최종 완성  (0) 2021.07.30
posted by 노랭이모찌