2013年11月17日 星期日

擴充分割視窗

UE3內建支援四個分割視窗,可分別對應到四個本地玩家。本篇將介紹相關的類別,以及如何擴充到更多的分割視窗。

分割視窗主要和LocalPlayer和GameViewportClient這兩個類別有關係。

LocalPlayer存放本地玩家的相關資料,包括個別玩家的視埠位置和大小。LocalPlayer物件存放在Engine的GamePlayers陣列裡,有幾個本地玩家就有幾個LocalPlayer。
  • Origin [ Vector2d ]:本地玩家視埠在畫面中的位置,以左上角為準。值域正規化在[0,1]之間。
  • Size [ Vector2d ]:本地玩家視埠在畫面中的長寬。值域正規化在[0,1]之間。
  • ControllerId [ int ] :指定這個本地玩家使用哪個遊戲控制器。

GameViewportClient負責視埠的相關功能,並且繪製出每個本地玩家的視埠畫面。 它定義了一個分割視窗的列舉型別叫做ESplitScreenType對應到一到四個分割視窗的排版,例如兩個分割視窗就可分成水平和垂直分割兩種:
水平分割
垂直分割