-
Notifications
You must be signed in to change notification settings - Fork 1
Design
NDark edited this page May 30, 2017
·
24 revisions
{{toc}}
- 本頁面說明本專案的各項設計與現存的內容
- 如果有沒撰寫的內容請直接看 功能清單
- 警告頁面
不可跳過,定時間離開,進入廣告頁面。 - 廣告頁面
可跳過,定時間離開,進入標題頁面。 - 標題頁面
必須按鈕方可跳過。進入選擇模式頁面。 - 選擇模式頁面
選擇故事或是挑戰模式,可返回標題頁面。 - 選擇船艦頁面
目前僅有挑戰模式才會選擇船艦,可返回選擇模式頁面,或是進入挑戰模式選擇關卡。 - 故事模式選擇關卡
目前有九個關卡,可以返回選擇模式頁面,選擇關卡後按下進入任務的按鈕後進入特別感謝頁面。 - 挑戰模式選擇關卡
目前有一個關卡,可以返回選擇船艦頁面,選擇關卡後按下進入任務的按鈕後進入特別感謝頁面。 - 特別感謝
如果在選擇關卡有指定特別感謝字串,就會顯示目標,可跳過。
如果在選擇關卡沒有指定特別感謝字串,那麼不會顯示任何物件,直接進入戰鬥場景。 - 戰鬥場景
依照選擇關卡指定的關卡字串,決定讀入關卡。
戰鬥中途可以開啟戰場選單,回到對應的選擇關卡。
戰鬥勝利或失敗,會結束戰鬥場景進入資訊頁面。 - 資訊頁面
戰後一連串的資訊頁面,結束後回到選擇場景或是警告頁面。- 資源清單
請參考頁面 資源取得網站清單
- 資源清單
請參考 InitializeInformationSequence.cs
- 戰後會有資訊頁面的流程,主要目的是給予玩家其他資訊(招募人員,資源路徑清單,或是工作人員,小提示等等)
- 原本的作法是戰後的按鈕直接導向各頁面,然後再由各頁面串接,最後連到回到起始(選擇關卡,或開頭)。
- 也就是把場景轉換的順序寫在場景(Scene)中。較為不彈性(如果要修改必須開Unity一個個場景做調整)
- 目前的作法是遊戲勝負已分就到資訊起始場景Scene_InformationHead,此場景是空的場景。
- 資訊起始場景用來讀入參數檔,並且設定場景參數到GlobalSingleton中。
- 之後(包含資訊起始場景)的所有資訊頁面都是去檢察此設定,然後切入下一個場景。
- 目前相關的運作
- ClickOnMessageCard_BackToSelectScene.cs 取得最終跳躍場景名稱
- LevelGenerator.cs 設定最終跳躍場景名稱
- VictoryEventManager.cs 設定最終跳躍場景名稱
- 戰鬥場景大致上由LevelGenerator發動,負責將關卡讀入。
- 然後依照GlobalSingleton上面掛載的各項管理器讓戰場運動起來。
- 主角船目前是物件名稱為MainCharacter的物件。其prefab相較於其他的船艦有稍稍不同,UnitDataGUI的圖片也不同。
- 小林丸指揮官的素材如Assets資料夾分為
- Animation 動畫
- Audio 音訊
- Resource 動態資源
- Texture 貼圖
- Material 材質
- Scene 場景
- Script 功能,請參閱功能清單
- 其中除了動態資源,場景與功能之外,都是各場景需要用到的資源。
- 而動態場景則是戰鬥場景運行中會動態讀入的資源其中分為
- Common 一般跟語系無關得資源
- Audio 音訊
- Prefabs 樣板
- Textures 貼圖
- Data 資料
- English 英語系資源
- TraditionalChinese 繁體中文資源
- Common 一般跟語系無關得資源
- 小林丸指揮官的資料(Data)支援兩種讀取方式
- 內部:放在Resource下的資料夾,讓Unity建立專案時一併打包。(玩家看不到)
- 外部:放在本機端執行執行檔旁,執行時動態讀取。(開放給玩家)
- 相關資料請參考
- 部件是獨立於單位的基本船身的存在
- 部件是透過UnitTable.xml來裝上各單位的基本船身之上
- 部件分為兩個部份
- 3D部分: 透過prefab來建立,定義部件在基本船身的3D空間位置,請見 單位概論 一節。其命名為
Template_Unit_[部件種類]_[序號或類型] - 3D部分的部件可有轉向之分,後方的防護罩轉向後方,武器也會依照轉向來定義攻擊範圍。
- 資料部份: 在UnitTable.xml中透過 [部件種類]_[序號或類型] 來找到3D部分的prefab。然後實體化後裝載在船型上。
- 3D部分: 透過prefab來建立,定義部件在基本船身的3D空間位置,請見 單位概論 一節。其命名為
- 雖然部件獨立於船型之外,所以任意船型都可以組合任意部件。然而部件的prefab必須與船型相對應,否則該部件在3D中會脫離船型的位置(在船外空間的位置)。
- 部件可以攜帶特效如引擎部件都攜帶Fluffy Smoke特效,讓各引擎在下線時都能放出煙霧。
- 定義部件的參數,在ComponentParamTable.xml中定義部件
- 在UnitDataGUI上的位置,及顯示名稱。
- 使用的特效prefab名稱,只有防護罩種類跟武器種類會需要定義特效prefab名稱,前者會產生被攻擊時的防護罩特效。後者會產生攻擊時運作的武器特效。
- 定義武器部件的參數,在WeaponParamTable.xml中特別定義武器的參數
- 攻擊角度
- 攻擊距離
- 準確度
- 發射時的音效名稱
- 場景是Unity的場景,我們透過一個戰鬥場景來讀入不同的關卡。
- 因此各關卡的不同之處在於初始物件的配置,事件,及運作機制。
- 譬如說tutorial的關卡有tutorial的事件處理器。其他關卡不需要。
- 請參考script : CameraInitialization 攝影機初始化
- 中心 0 100 0 朝向 -y軸 以一定高度看下去
- 高度會影響單位及場景的縮放大小
- 高度會影響看到的範圍
- 沒有旋轉
- 小林丸指揮官的單位是由數個部份所構成。
- Prefab樣板,用來提供基本船身,請參閱資料夾Assets\Resources\Common\Prefabs\
- 資料樣板(UnitDataTemplate),用來提供單位的資料船身,如速度參數,各部件名稱與參數,最後會產生UnitData這個資料結構掛在單位上,請參閱Assets\Resources\Common\Data\UnitTable.xml
- 部件樣板(Component),用來定位部件在船隻身上的位置,由於目前沒有部件的模型,所以部件是看不見的3D方塊,請參閱資料夾Assets\Resources\Common\Prefabs\Template_Unit_*.prefab
- 部件介面(UnitDataGUI),透過各部件定義在部件參數檔的資料,來動態建立2D的部件介面,請參閱Assets\Resources\Common\Data\ComponentParamTable.xml
- 部件使用的特效樣板,部件在運作時會使用的特效物件樣板(如防護罩特效,武器特效),同樣定義在ComponentParamTable.xml中。
- 武器參數,定義武器部件的參數Assets\Resources\Common\Data\WeaponParamTable.xml。
- AI,AI船隻的運作,可以定義在資料樣板中,也可以是後再掛上。
- 泛型參數,放在關卡定義檔中,由UnitData保存之。
- 因此,各關卡指定船隻單位時就必須指定Prefab樣板,資料樣板,AI會用到的參數。就可以建立出可正常運作的單位。
- 節流閥:脈衝速度比例目前。GUI_PulseEngineRatio
圖片寬高
畫面上寬高
畫面上距離原點是否有位移
擺放位置 -
目前速度:暫時用數字表示向量。GUI_PulseEngineSpeed(暫時用不到) -
目前朝向:暫時用數字表示向量。GUI_Direction(暫時用不到)
- 選擇框
GUI_Selection01
暫時只用一個選擇框,未來要使用複製或是固定長度再討論 - 血量條
- 傷害數字
請參照 功能清單GUI 的 訊息系統 : MessageQueueManager
請參照 功能清單GUI 的 GUI_EnergyManipulator 能源控制器
請參照 功能清單GUI 的 DrawMiniMap.cs
- 單位的參數檔
- 參數檔的讀取 UnitData , LevelGenerator
- 創造武器的3D物件 UnitWeaponSystem
- 取得所有武器的部件 清單
ex. Weapon_Phaser01
ex. Weapon_PhotonTorpedo01 - 依照武器的部件名稱
- 創造武器的3D掛在單位上的物件
此處必須有樣板物件(因為3D很難形容) Template_Unit_
命名為 :
此物件會用來- 檢查被擊中
- 發射特效的起點
- 創造武器的對應特效物件
此處必須有樣板物件(因為每種武器的特效物件可能都不一樣) Template_Effect_
命名為 :_Effect
譬如說光炮就是長條狀的貼圖(暫用)
光雷是一顆塊狀貼圖
特效物件開始是關閉的
是否要改成每次發射才創造,有待商榷與討論(效能及彈性考量) - 特效物件該如何儲存?
請見武器的集合陣列
- 創造武器的3D掛在單位上的物件
- 取得所有武器的部件 清單
請見 功能清單 的 WeaponDataSet.cs 武器運作相關物件集