UE4 HUD相關的筆記

最近幾天主要看了下官方賽車遊戲的HUD實現,這裏記錄下,將來還要寫射擊遊戲的HUD實現,將來也要寫在這裏了。

賽車遊戲的HUD全部使用藍圖實現的,不同於射擊遊戲的C++實現,其實都是一樣的,寫HUD主要注意的就是不同分辨率下信息的位置,縮放,大小等。


大分辨率下的HUD


小分辨率下的HUD

藍圖中繪製HUD是在HUD的Receive Draw HUD實際中進行的,該事件有兩個參數SizeX和SizeY,分別表示當前的可繪製區域(不等於遊戲窗口的寬高,因爲有可能指定了寬高比)的寬度和高度,如果遊戲中實時地改變遊戲窗口的話,這兩個數值也會相應改變。賽車遊戲中的繪製是這樣,首先寫了一個函數叫做ScaleToRaito,這個函數的作用是把1280*720分辨率下傳過來的繪製位置(x,y)和scale換算到現在的sizeX*sizeY分辨率下的位置(x,y)和scale.有個這個換算函數,我在HUD繪製的時候所有位置和縮放只按照1280*720的分辨率下佈局就可以了。注意:使用這種做法前提是你的相機寬高比是固定的(比如16:9),否則其他4:3分辨率會不協調的。

賽車遊戲中除了這個以外其他的就簡單了,都是調用DrawText,DrawRect,DrawMaterialSimple之類的函數了。


射擊遊戲後續。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章