Levelbackgroundscenecoordinate - NDark/KobayashiMaruCommanderOS GitHub Wiki

設計與內容

{{toc}}

關卡背景場景座標

本頁面說明 場景的定位(方向及位置)及背景物件的製作

相關腳本

  1. script : BackgroundObjInitialization.cs 背景初始化
    綁定在Prefab上即可

背景貼圖的挑選守則

  1. 貼圖不要太特別
  2. 邊緣最好是全黑(可以重複)是否使用多層及透明?
  3. 解析度要高

場景製作的不同方法

  1. 使用Unity
    在Unity中將必要的物件建立起來並且組合,最後只需要把整合的物件調整位置及轉向到指定姿勢即可。
    優點:所見即所得
    缺點:必須安裝Unity必須與Unity專案同步
  2. 使用參數檔
    將每個物件模組化並且寫入參數檔中,程式初始化時就會讀入參數檔並且把每個物件建立起來放在指定位置。
    缺點:不透過一個編輯器,無法立即了解關卡的相對關係。
    優點:可以透過外部資料來改變關卡,不用安裝Unity。
  3. 綜合型(目前做法)
    將靜態物件透過Unity整合後成為一個物件,關卡檔中描述此物件並實體化
    動態物件則在參數檔中描述建立之。

關卡場景物件的命名

  1. 關卡清單檔( LevelTable.xml )中描述各關卡檔( Level_….xml )
  2. 關卡檔會描述物件名稱與樣本名稱。
  3. 此時Unity的Prefab製作完成後必須命名為樣本名稱即可在關卡檔中生效。

大小縮放的問題

  1. 場景大小必須維持一致不要縮放。
  2. 現在是因為沒有正確的場景可以使用所以才使用標準Plane來放大30倍。
  3. 縮放會導致程式中必須時時檢察座標系的改變,增加運算的困難。
  4. 或是使用兩層物件來綁定場景物件

可見場景 可運動場景

  1. 場景必須有三層描述
  2. 真正的場景,全部的場景物件的總和。
  3. 可運動場景,使用邊界的描述來讓船隻單位不會超過此界線。
  4. 可見場景,必須大於可運動場景,必須注意到當單位移動到可運動場景的邊緣時,外圍不能看到場景之外的部份。
  5. 使用遮蔽物,在可運動場景之外擺放障礙物來做場景,同樣是不能讓玩家看到破綻。

說明

  1. XZ – Y (轉向使得y軸對著攝影機)
    1. 不旋轉(參數) 旋轉攝影機
  2. 中心座標(參數) 0 0 0
  3. 長寬(參數) 原本模型大小為5 0 5 scale 30 1 30 (場景座標系)
    縮放參數對應到旋轉後的物件是xz
    1. 在還沒有正式的場景之前先用縮放的,縮放倍數(參數),在xz軸向縮放。
  4. 寬度(基本大小乘以倍數計算出),在xz軸向的大小(真正場景可見的界線)。
  5. 邊界(參數),我們設定的邊界容許值,在xz軸向的大小。
  6. 可移動範圍,寬度減去邊界(計算而出)。
  7. 背景深度 z = 0 (攝影機座標)
    1. 船隻物件深度 z = -1 (攝影機座標)
⚠️ **GitHub.com Fallback** ⚠️