2013年5月26日 星期日

小技巧 - 讓 Unity 適應不同平台畫面

跨平台時最麻煩的除了硬體上的規格不一樣外,螢幕比率也大不相同。一般的 UI 可以設對齊方式,所以在不同螢幕比例不會有太大的問題。而最常遇見的困擾,就是背景圖

舉個例子,在 iOS 640x1136 底下,我們看到的是這個樣子
9:16
但放在 iOS 640x960 底下,卻變成這個樣子
2:3
原本預期應該是高度會縮減,但因為 Unity 的 Camera 會根據「螢幕比率」改變寬度的視野,所以畫面兩邊反而跑出空白畫面。雖然可以使用 Camera.aspect 強制更改 Camera 的比率,但卻會讓手機上的畫面看起來像是拉長或是壓扁,這樣一點都不好看。

在這邊提供一個小技巧。
我們只要先得知固定寬度,再倒著算回去 Camera 在該比率下應該有的高度即可。

程式範例

因為 NGUI 預設 Camera 的 OrthographicSize 是 1,所以我們可以得知在 9:16 的比率下寬度為

2 x 9 / 16 = 1.125

然後把該 Component 放入 Camera 物件中,指定寬度為 1.125

當遊戲執行後,會自動計算調整 Camera 的高度,結果如下圖

Camera 的寬度完美地適應了背景圖片!

1 則留言: