[내배캠] 유니티 입문#1

Sungchan Ahn(안성찬)·2024년 10월 7일

내일배움캠프

목록 보기
38/104

월드 좌표계와 로컬 좌표계

  • 월드 좌표계 (World Coordinate System)
    (0, 0, 0)을 원점으로 하여 오브젝트의 위치, 방향 등을 표현하는 좌표계

  • 로컬 좌표계 (Local Coordinate System)
    기준이 되는 대상에 대해 X, Y, Z축 방향으로 얼마만큼 차이가 있는지(상대적인) 나타내는 좌표계

Transform 컴포넌트

모든 게임 오브젝트는 Transform 컴포넌트를 가지고 있다. 게임 오브젝트의 위치(Position), 회전(Rotation), 크기(Scale)를 정의, 제어한다. 보통 자식 오브젝트의 Transform은 부모에 대한 로컬 좌표계로 나타낸다.

계층 구조(트리 구조)

  • 게임 오브젝트는 다른 게임 오브젝트(부모)의 하위 오브젝트(자식)가 될 수 있다.
  • 자식 오브젝트는 하나의 부모 오브젝트만 가질 수 있다.
  • 부모 오브젝트의 위치, 회전, 크기가 변하면 부모 오브젝트를 기준으로 자식 오브젝트의 상대적인 위치, 회전, 크기가 유지되기 때문에 Transform은 변하지 않는다. 쉽게 말하면 부모 오브젝트를 따라 움직이게 된다.

Input Manager

게임에서 사용자의 입력을 관리하는 시스템으로 아래의 New Input System 이전에 사용되던 방식이다. GetAxis("Horizontal"), GetAxis("Vertical")을 이용해 각각의 축을 기준으로 입력을 받아 처리할 수 있다.

New Input System

단일 책임 원칙에 따라 입력 처리와 실제 로직을 실행하는 주체를 분리

  • 핵심 개념
    • Input Action : 입력 행동을 정의한다. "점프", "공격" 등의 행동을 정의하고 행동을 동작하게 하는 입력 키나 버튼을 지정할 수 있다.
    • Input Action Asset : 여러 개의 입력 행동을 그룹화한다. 재사용 가능한 입력 설정을 만들어 여러 곳에 복수 적용할 수 있다.
    • Player Input Component : 자동으로 입력 행동을 처리하고 해당 게임 오브젝트에 메시지를 보낸다.
  • 장점
    • Cross-Platform Compatibility : 다양한 플랫폼과 입력 장치에 대해 일관성 있게 대응할 수 있다.
    • Rebinding : 사용자가 자신의 취향에 맞게 입력 설정을 변경할 수 있게 지원한다.
    • Multiplayer Support : 여러 플레이어가 게임을 플레이할 때 입력을 쉽게 처리할 수 있다.

타일맵 TileMap

유니티에서는 Tilemap 시스템을 제공하고 있다. Tilemap은 작은 스프라이트인 타일을 기반으로 게임 환경을 쉽게 만들 수 있다.

  • Grid GameObject : 모든 타일맵이 위치하는 기본 격자
  • Tilemap GameObject : 유니티의 타일맵 구조를 구성하는 데 사용. Tilemap Grid의 자식 오브젝트. 특정 타일의 배치를 관리
  • Tilemap Renderer : Tilemap의 모양을 실제로 그리는 역할
  • Tilemap Collider 2D : Tilemap에 물리적인 경계를 추가하여 Tilemap 환경과 상호작용을 할 수 있게 한다.
  • Tile Assets : 개별 타일의 모양과 동작을 정의

쿼터니언(Quaternion)

  • 3D 공간의 회전을 나타내는 데이터 형식
  • x, y, z (회전을 나타내는 벡터) / w (회전의 크기를 나타내는 스칼라 값) 의 네 개의 실수로 구성
  • 짐벌 락 문제를 피할 수 있다. 짐벌 락 문제 -> https://www.youtube.com/watch?v=zc8b2Jo7mno
  • 회전을 효율적으로 결합하고 연산할 수 있다.
  • 회전의 방향과 크기를 동시에 표현할 수 있다.
  • 유니티 내장 함수로 쿼터니언을 지원
profile
게임 개발 기록

0개의 댓글