創作內容

6 GP

在2D遊戲Topdown視角下模擬三軸物理[ Unity ]

作者:迷途巴哥│2020-05-09 13:20:47│巴幣:12│人氣:601
紀錄一下最近研究的東東。

因為畢製打算做一款純2D的遊戲,但又想要在2D的畫面下加入更豐富的物理,於是我開始了製作虛擬y軸之路。

製作概念:
針對場景中所有平台設TriggerCollider,並且設一個虛擬高度參數,然後再利用RayCast去偵測角色所站地面的虛擬高度,將角色速度分為平面的xz軸和y軸,y軸速度透過高度比例換算並和xz軸速度相加後再給rigidbody,當角色有跳躍或是引力向下的y軸速度時,利用此速度反推移動量,在調整角色站的地面位置,這樣就能夠準確知道角色目前的虛擬高度和位移。

實際效果:
平台高度差

平台跳躍

不同角度平台高度差

高度差跳躍

斜坡高度差修正

值得注意的是場景中會有非單一高度的平台,如斜坡、或者凹凸不平的起伏地面,為此我設計的一個能夠針對凸多邊形頂點設定高度的程式,只要針對凸多邊形的頂點設定高度,程式會自己運算出圖形中間任一點高度(如下圖)。


雖然目前只用到很簡單只有2種頂點高度的斜坡,但這套運算方式基本上只要是凸多邊形都能準確計算。

運算的步驟:
1.先找出任意頂點經過目標位置到圖形邊的線段
2.取得圖形邊的點後可利用此邊上的兩個頂點換算此點的高度
3.再利用此點和頂點去換算這條線段上目標位置的高度
4.對每個頂點重複1~3步驟後將結果相加並且除以頂點數
這樣就能得知被每個頂點高度影響後的目標位置的高度了(此步驟只能用在凸多邊形)


實機DEMO:

之後會再陸續增加其他物理功能(如推、拋、丟、彈跳、摩擦力等等)。
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4776380
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:遊戲開發|Unity

留言共 1 篇留言

ATK
[e18]

05-29 18:49

迷途巴哥
[e11]05-29 21:50
我要留言提醒:您尚未登入,請先登入再留言

6喜歡★asd3465789 可決定是否刪除您的留言,請勿發表違反站規文字。

後一篇:【自製遊戲公會】新成員報...

追蹤私訊切換新版閱覽

作品資料夾

asld12347🔉🐷🤓😁
紅燒翅膀 我喜歡吃~看更多我要大聲說2小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】