[면접대비] Unity(5)
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
Unity의 Input System은 키보드, 마우스, 게임패드, 터치 등 다양한 입력 장치를 통합적으로 처리하기 위한 시스템입니다. Input Action을 정의하고 입력과 게임 로직을 분리해서 관리할 수 있습니다.
기존 Input Manager는 Input.GetKey처럼 코드에서 입력을 직접 확인하는 방식이 중심이고, New Input System은 Input Action을 기반으로 여러 장치의 입력을 매핑하고 이벤트 방식으로 처리할 수 있습니다.
Update 방식은 매 프레임 입력 상태를 직접 확인하는 Polling 방식이고, 이벤트 방식은 입력이 발생했을 때 등록된 Callback을 실행합니다. 이벤트 방식은 입력 처리와 실제 게임 로직을 분리하기 좋습니다.
Camera는 Scene의 3D 또는 2D 공간을 어떤 시점과 범위에서 화면에 렌더링할지 결정하는 컴포넌트입니다. Projection, Culling Mask, Viewport 등의 설정을 통해 렌더링 범위를 제어할 수 있습니다.
Perspective는 거리에 따라 물체가 작아지는 원근감이 표현되고, Orthographic은 거리에 관계없이 같은 크기로 표현됩니다. 일반적인 3D 게임은 Perspective, 2D나 일부 쿼터뷰 게임은 Orthographic을 많이 사용합니다.
Cinemachine은 카메라 추적, 회전, 화면 구도 등을 쉽게 구현할 수 있도록 지원하는 Unity의 카메라 도구입니다. Virtual Camera를 이용한 플레이어 추적이나 카메라 전환 등에 활용할 수 있습니다.
NavMesh는 AI 캐릭터가 이동할 수 있는 영역을 미리 정의하고, 해당 영역 위에서 목적지까지 이동 가능한 경로를 탐색할 수 있도록 하는 Unity의 내비게이션 시스템입니다.
NavMeshAgent는 NavMesh 위에서 목적지까지 경로를 탐색하고, 설정된 속도와 가속도 등을 바탕으로 해당 경로를 따라 이동하는 컴포넌트입니다.
SetDestination으로 목적지를 설정하면 NavMeshAgent가 NavMesh를 기반으로 해당 목적지까지의 경로 계산을 요청합니다. 이후 계산된 경로를 따라 Agent가 이동합니다.
경로 계산 중이 아닌지 pathPending을 확인한 뒤 remainingDistance가 stoppingDistance 이하인지 확인할 수 있습니다. 필요하다면 속도나 경로 상태까지 함께 검사해 도착 여부를 판단합니다.
NavMeshObstacle은 NavMeshAgent가 피해야 하는 장애물을 나타내는 컴포넌트입니다. Carving을 사용하면 장애물이 차지하는 영역을 NavMesh에서 일시적으로 제거해 Agent가 우회하도록 만들 수 있습니다.
Texture Type, Max Size, Compression, Filter Mode, Wrap Mode 등을 설정할 수 있습니다. 플랫폼별 설정을 통해 모바일과 PC에서 서로 다른 크기나 압축 방식을 적용할 수도 있습니다.
Pixels Per Unit은 이미지의 몇 픽셀을 Unity 월드 공간의 1 Unit으로 사용할지 결정하는 값입니다. 예를 들어 PPU가 100이면 이미지의 100픽셀이 1 Unity Unit에 해당합니다.
텍스처가 차지하는 저장 공간과 GPU 메모리 사용량을 줄이기 위해 사용합니다. 다만 압축률이 높으면 이미지 품질이 떨어질 수 있어 플랫폼과 용도에 맞는 설정이 필요합니다.
모바일은 PC보다 CPU, GPU, 메모리와 발열 등의 제약이 크기 때문에 텍스처 크기, Shader, Draw Call, Overdraw 등을 더 신경 써야 합니다. 또한 터치 입력, 화면 비율과 Safe Area 같은 모바일 환경도 고려해야 합니다.
StreamingAssets는 원본 형태로 빌드에 포함해 런타임에 읽을 파일, Resources는 런타임에 경로를 통해 Unity 에셋을 로드할 때 사용합니다. persistentDataPath는 세이브 데이터처럼 실행 중 생성되고 기기에 계속 보존할 데이터를 저장할 때 사용합니다.
실제 기기에서 Profiler를 연결해 CPU, GPU, Memory, Rendering 등을 측정하고 먼저 병목 지점을 찾겠습니다. 이후 GC Alloc, Draw Call, Overdraw, 물리나 AI 연산 등을 확인해 원인을 수정하고 다시 프로파일링해 개선 여부를 검증하겠습니다.
Unity 면접 대비 렌더링/그래픽, 메모리/최적화
Unity 면접 대비 애니메이션, UI
Unity 면접 대비 물리 코루틴 / 시간처리 ScriptableObject / 데이터