This document is about: QUANTUM 2
SWITCH TO

Quantum 102 - Setting up a Scene

개요

Quantum 102는 물리적 객체로 간단한 Quantum 씬을 설정하는 방법을 설명합니다. 엔티티 개념을 소개하고 유니티 편집기 내부에서 엔티티를 만드는 방법을 설명합니다.

게임 씬 열기

Quantum SDK와 함께 제공되는 유니티 프로젝트에는 시작하는 데 도움이 되는 파일이 이미 포함되어 있습니다.

Photon/QuantumDemo 폴더 안에는 Game 그리고 Menu 폴더가 있으며 각각 비슷한 이름의 씬이 들어 있습니다. 이러한 장면은 Quantum 100 시리즈의 시작점 역할을 합니다.

Game 씬을 엽니다.

the game scene
Game 씬.

씬에는 주목할 만한 GameObject들이 몇 개 있습니다.

  • MapData: Quantum에서 장면을 만드는 워크플로우는 유니티에서 단일 플레이어 게임의 씬을 만드는 것과 거의 비슷합니다. 맵 데이터 컴포넌트는 결정론적 양자 엔진에서 사용할 수 있도록 씬에서 엔티티, 정적 콜라이더 및 NavMesh 데이터를 베이킹합니다.
  • EnitityViewUpdater는 런타임에 게임플레이 코드로 생성된 엔티티(뷰)의 GameObject 표현을 인스턴스화하고 파괴하는 역할을 담당합니다.
  • LocalInput 스크립트는 결정론적 양자 엔진에 유니티 입력을 전달하는 방법의 예입니다. 이 시리즈의 후반부에 확장될 예정입니다.
  • QuantumStats GameObject는 Game 편집기 창의 왼쪽에 표시되는 통계 창을 표시합니다. 활성 Quantum 시뮬레이션에 대한 많은 유용한 통계를 표시합니다.

노트: 나중에 EntityViewUpdater로 돌아가 게임의 필요에 따라 커스터마이징하는 것이 좋습니다. 예를 들어 필요한 경우 개체 풀링을 추가하거나 보간을 변경합니다.

바닥과 Rigidbody 추가

씬에 바닥을 추가하기 위해서, 유니티의 계층 탭에서 우측을 클릭하고 Quantum > 3D > Static Box Collider를 선택합니다. 이 객체에는 Quantum Static Box Collider 3D가 있습니다. Quantum 정적 콜라이더 컴퍼넌트 Quantum 맵의 정적 충돌 형상을 정의합니다.

create a static collider
정적 콜라이터 생성.

GameObject의 이름을 Floor"로 변경하고 스케일을 (10, 1, 10)로 변경합니다. 씬 보기에서 시각적 메시와 일치하는 녹색 기즈모 박스를 사용할 수 있습니다. 이것이 Quantum 정적 콜라이더입니다.

the floor

다음으로 Quantum > 3D > Box Entity를 추가합니다. 위치를 (0, 4, 0)으로 설정하고 회전을 (45, 0, 45)로 설정합니다.

엔티티에 Rigidbody 컴포넌트를 추가하려면 Enity Prototype 컴포넌트의 PhysicsBody3D를 체크합니다.

플레이 모드로 들어갑니다. 이렇게 하면 정적 콜라이더가 자동으로 결정론적 맵으로 전환됩니다. 큐브 엔터티가 바닥에 떨어져 떨어집니다.

노트: Quantum 시뮬레이션의 모든 데이터는 결정론적이어야 합니다. 따라서 Quantum을 사용할 때 많은 비결정론적 유니티 데이터가 데이터 베이킹 프로세스에 의해 결정론적 형태로 베이킹 되어야 합니다. 베이킹된 데이터는 스크립트 가능한 객체와 같은 데이터 에셋에 저장된 다음 시뮬레이션을 통해 접근됩니다.

cube falling to the ground

Quantum 내의 엔티티

Quantum에서 모든 게임플레이는 엔티티 및 시스템과 정적 콜라이더와 같은 정적 데이터 에셋에 의해 구동됩니다. Quantum은 렌더링을 처리하지 않지만 EntityViewUpdater는 유니티에서 EntityView Monobehaviour이 있는 EntityPrototype이 있는 각 엔티티에 대해 GameObject를 인스턴스화합니다. 이 뷰 GameObject는 엔티티의 시각적 표현 역할을 합니다. 또한 EntityViewUpdater에 의해 뷰 게임 객체의 변환이 각각의 엔티티에서 자동으로 동기화됩니다.

각 엔티티에는 일련의 컴포넌트가 있습니다. 컴포넌트는 유니티 MonoBehavior가 아니며 Entity Prototype MonoBehavior의 Enity Component 목록에 있거나 코드를 통해 엔티티에 추가됩니다. 큐브 엔터티의 PhysicsBody3D 컴포넌트와 같은 엔터티 프로토타입 컴포넌트의 확인란을 선택하여 일부 컴포넌트를 추가합니다.

Quantum에는 런타임 동안 엔티티 컴포넌트의 상태를 검사하는 상태 검사기가 있습니다. 유니티의 메뉴바에서 Window > Quantum > State Inspector를 클릭합니다. 그러면 상태 검사기 창이 열립니다. 플레이 모드로 들어갑니다. 상태 검사기 창에서 LOCALDEBUG 항목과 Entities 항목을 엽니다. 큐브 엔터티가 나열됩니다. 엔티티의 모든 컴포넌트와 해당 컴포넌트의 현재 상태를 표시하려면 이 아이콘을 클릭합니다.

the cube entity in the state inspector
상태 검사기의 큐브 엔티티.
Back to top