This document is about: QUANTUM 3
SWITCH TO

3 - Setting up a Scene

概述

在教學的第3部分中,介紹了如何使用Quantum設定基本場景和創建實體。

打開遊戲場景

Quantum SDK附帶了幫助您入門的檔案。

QuantumUser/Scenes資料夾中有一個QuantumGameScene場景。這個場景是Quantum 100系列的起點。打開QuantumGameScene場景。透過前往Unity選單中的「檔案>另存為」並在「資源/場景」資料夾中另存為「AsteroidsGameplay」來創建場景的副本。

The QuantumSampleGame Scene
QuantumSampleGame場景。

場景中有一些值得注意的遊戲物件。

  • QuantumMap:在Quantum中創建場景的工作流程與在Unity中為單人遊戲創建場景幾乎完全相同。地圖資料元件嵌入場景中的實體、靜態碰撞器和NavMesh資料,以便確定性Quantum引擎可以使用它們。
  • QuantumEntityViewUpdater負責具現化和銷毀遊戲程式碼在運行時創建的實體(視圖)的遊戲物件表示。
  • 帶有Debug Input指令碼的QuantumDebugInput將Unity輸入傳遞到確定性Quantum引擎的方法示例。它將在本系列稍後進行擴展。
  • QuantumStats遊戲物件顯示了Game編輯器視窗左側可見的統計視窗。它顯示了許多關於活躍Quantum模擬的有用統計資料。

地圖資料資產物件

Quantum資產是不可變的資料容器,用於設置遊戲模擬。Unity中的每個場景都有一個連結到此場景的相應Quantum地圖資源。此資源包含有關場景的確定性資訊,例如場景中嵌入到資產中的物件和碰撞器。

創建一個新的Resources資料夾,然後按右鍵點擊該資料夾,選擇Create > Quantum > Asset,然後在清單介面快顯視窗中選擇Map。將新資產命名為AsteroidsMap

Create the Map Asset
創建地圖資源。

注意: 使用Resources資料夾是為了讓Quantum能夠載入資產。所有Quantum資產都需要放在Resources資料夾中或標記為可定址。

按一下場景中的QuantumMap物件。現時,已有的QuantumMap資產仍連結到場景。將新的AsteroidsMap資產放入檢查器的asset欄位,用新資產替換它,然後儲存場景。儲存場景時,將在Resources資料夾中生成一個新的AsteroidsMap_mesh資產。這包含了地圖中關於物理碰撞器的資訊。

Replace the Map Asset
替換地圖資產。

相機與燈光

調整Main Camera的位置設定為(0, 10, 0)並將其旋轉設定為(90, 0 , 0)。將背景顏色設定為黑色,並將正交投影大小調整為20。

Camera Setup
相機設定

接下來,在場景中新增一個帶有柔和黃色調的Directional Light

Directional Light
新增平行光。

創建實體

創建一個新的2D圓實體。(按右鍵點擊層次視窗,然後選擇Quantum > 2D > Circle Entity

Create Circle Entity
創建一個圓形實體。

將新創建的遊戲物件重命名為AsteroidLarge。刪除網格篩選器和網格渲染器元件。調整QuantumEntityPrototype上的PhysicsCollider2D,使其半徑為1.1。最後,勾選PhysicsBody2D框,將實體轉換為具有剛體的基於物理的實體。

Adjust the Asteroid

按右鍵點擊AsteroidLarge遊戲物件,然後選擇Create > 3D Object > Cube以創建一個立方體作為小行星的下層物件。這個下層將持有小行星的視覺模型。將其重命名為Model

沒有必要將視覺效果放在單獨的下層上,這只是為了使元件更有條理。

從物件移除Box Collider,將比例設定為1.5,並新增旋轉以使視覺更令人愉悅(在這種情況下使用了(25,17,-53))。

Create the Asteroid Model
創建小行星模型。

進入播放模式。您可以看到小行星實體由於重力而慢慢從畫面上掉下來。(重力稍後將被停用,力將手動施加到小行星上)

gif of Asteroid Dropping

Quantum中的實體

在Quantum中,所有遊戲都是由實體、系統和靜態資料資產驅動的,這些資產封裝了靜態碰撞器資訊等資料。Quantum模擬程式碼不處理任何渲染,但是EntityViewUpdater在Unity中為每個具有EntityPrototype和EntityView MonoBehaviour的實體具現化一個GameObject。此視圖GameObject充當實體的視覺表示。視圖GameObjects的轉換也由EntityViewUpdater從其各自的實體自動同步。

每個實體都有一組元件。元件不是Unity MonoBehaviors,而是透過EntityPrototype MonoBehiviors的Enity Component清單或程式碼而新增到實體中。透過勾選實體原型元件中的核取方塊來新增某些元件,例如立方體實體上的PhysicsBody2D元件。

Quantum有一個狀態檢查器,可以在運行時顯示實體元件的狀態。在Unity的選單列中,按一下Window > Quantum > State Inspector。這將打開狀態檢查器視窗。進入播放模式。在狀態檢查器視窗中展開LOCALDEBUG條目和Entities條目。小行星實體被列為實體1。按一下它以顯示實體上的所有元件及其當前狀態。

The asteroid entity in the state inspector
狀態檢查器中的小行星實體。

創建預製件

Quantum實體可以變成常規的Unity預製件。將AsteroidLarge遊戲物件放入Resources資料夾中以創建預製件,然後將其從場景中刪除。自動創建AsteroidLargeEntityPrototype資產物件。該資產持有了Quantum模擬所使用的實體的嵌入資料。

Turn Asteroid into Prefab
將小行星變成預製件。
Back to top