主題

做一個保齡球的遊戲

showy | 2021-05-28 18:50:29 | 巴幣 1122 | 人氣 145

因為有時候跟朋友在一起的時候沒事做蠻無聊的,所以我後來就想到說來做一個普通的小遊戲,順便練習一下 Unity。其實一開始只是在網路上找繪圖的靈感,結果偶然翻到了保齡球的影片,才想到的。

遊戲的主題是保齡球,首先就準備一下素材。球和球瓶都是很簡單的形狀,製作的過程還蠻輕鬆的。

然後因為想讓球道表現出木頭的材質,所以我準備一張圖畫了幾條直線模仿木頭的質感。反正拉長之後基本上是看不出破綻的。

因為是很簡單的小遊戲,所以我想做一些特別的嘗試,既然這是一個 3D 的遊戲(平常我是比較喜歡做 2D 的),那就啟動光線追蹤,讓畫面更精緻好了。

查了一下,要用到一個叫 High Definition Render Pipeline 的東西,可以從 Package Manager 安裝。

做完基本的環境設定之後,相機就變成了有更多進階選項的狀態,Material 在套用 HDRP 的 Shader 之後就可以用了。另外,使用 Volume 這個 Component 就可以控制場景中的各種畫面設定。

在成功啟動反射光以後,可以看到球瓶在球道上有明顯的反射效果。

結果跑起來以後 FPS 跑不到 60,畢竟我的 GPU 不是支援光線追蹤的。為了順暢的體驗我只好忍痛把一些其他特效降低了。

在投球的操作上面我做的很簡單,球會跟著滑鼠移動,接著按下滑鼠以後停下來。等到滑鼠放開之後,看玩家把滑鼠往哪個方向滑來決定球要往哪滾。

結果就遇到了神奇的 Bug,在球投出去之前,球瓶就會先開始晃動,最後倒下。

在不斷調整 Unity 的各種物理參數之後(阻力、摩擦力等等),我發現是因為我在製作模型的時候用了圓角的效果,所以下面是圓弧狀的⋯⋯

解決問題以後,接著就繼續布置我的場景,把裝置還有洗溝的地方做出來。全部都是用方塊做的(我就懶)。球道也鋪上了上面畫的直線木頭素材,變得更加的精緻。

另外在做清理球道的動畫的時候,我原本是想把所有球瓶放到同一個動畫群組裡一起被拉起來,不過這樣就連已經倒下的球瓶一起上升。所以我改成在上方加入一個 Trigger,然後讓只有碰到那個 Trigger 的球瓶播放被拉起來的動畫,因為倒下的球瓶碰不到上面所以就不會被拉起來了(其實概念就跟現實的保齡球差不多)

成果:

結果之後放到朋友的筆電上跑根本跑不動⋯⋯

創作回應

賴普拿疼潘志遠趴趴鼠
要不要使用URP呢? HDRP用的資源比較多
2021-05-28 20:32:36
showy
感覺不錯欸,之前找資料的時候沒看到這個。這樣就可以在手機上用了,感謝~
2021-05-28 20:38:25
青鳥
wow
保齡球遊戲 厲害
2021-05-29 14:35:55

相關創作

更多創作