Game Window是Unity編輯器中用來顯示玩家視角的視窗,常用來在編輯器中檢視run time時玩家的視角。
其左上有一欄位為調整該視窗顯示用的解析度或長寬比,預設是Free Aspect(不固定比例),意即
你怎麼拉伸Game Window,遊戲畫面就以當下Game Window的長寬顯示之。點選該欄位即會出現設定列表,Unity內建幾組比較常見的設定可選,但也可以新增自己的設定,點選下方的+號即出現新增設定的視窗。
在設定視窗可以看到幾個參數;Label是此設定在列表顯示的名稱,Width & Height是此設定對應的寬高值,而Type則是此設定所使用的顯示模式。
在Type中我們可以看到有"Aspect Ratio"與"Fixed Resolution"兩個選項,它們代表什麼意思、又有什麼差別呢?
Aspect Ratio
長寬比,即以固定比例的方式來顯示遊戲畫面。
當你在此模式縮放Game Window時,遊戲畫面的長寬會維持固定。
例如你設定16:9,原來的Game Window大小是1280x720 pixel;隨後你把它的高調整到480pixel,遊戲畫面的寬會跟著縮放到704pixel,維持16:9的比例這樣。
Fixed Resolution
固定解析度,即以固定的像素值(pixel)來顯示遊戲畫面。
當縮放Game Window時,遊戲畫面的顯示會以變更Scale的方式來縮放,也就是對於引擎來說畫面的解析度並沒有變更,只是在Game Window上它的Scale變了。
如果這樣敘述有點難理解的話,可以想像下:假如你有一支智慧手機的解析度是1920x1080 pixel,當你把它拿到自己眼前時它看起來很大、拿到遠處它會看起來很小,但它一樣是1920x1080 pixel的手機,只是在我們視覺上的大小變了,Scale縮放就類似這種概念。
差異
- Width & Height的設定值
Aspect Ratio在Width & Height的設定值代表的意思是"寬高比例",寬高中間是以":"隔開表示,例如16:9、4:3。
Fixed Resolution在Width & Height的設定值代表的意思是"寬高像素",寬高中間是以"x"隔開表示,例如1024x768、1920x1080。
- API的值
UnityEngine.Screen為提供螢幕相關資訊或操作的API。
在Fixed Resolution模式下,其所取得的螢幕解析度值將會一直是當前的設定值,例如:你用了1920x1080的設定,那不論怎麼調整Game Window,UnityEngine.Screen.width都會是1920、UnityEngine.Screen.height都會是1080。
而在Aspect Ratio模式下,則會實際反應Game Window內的畫面解析度,例如你把1920x1080大小的Game Window調整到一半的大小,那麼當下UnityEngine.Screen.width的值會是960、UnityEngine.Screen.height的值會是540。
因此假如你的程式中有使用UnityEngine.Screen來獲取畫面解析度資訊,在編輯器下debug時就要注意:Fixed Resolution模式要調整設定才會改變解析度資訊,而Aspect Ratio模式只要縮放Game Window就會變動了。
- UI顯示
這兩個模式會讓一些UI自適應有不同的預覽結果,以下將以UGUI範例之:
一般作業時會先選定一個解析度作為設計基準,而要讓團隊內所有人都能在編輯器上看到一致的基準顯示結果的話,在Fixed Resolution模式下使用基準解析度設定、又或者在UGUI把Canvas Scaler的UI Scale Mode設定成Scale With Screen Size,然後設定基準解析度。(如果這時用的是Aspect Ratio模式的話,記得設定的畫面比要跟基準一致)
沒有留言:
張貼留言