前一陣子, 我忽然想到舊遊戲 Warcraft 的 NOTD Aftermath, 還有在 2015 年推出的 NOCT (這遊戲還未正式完成在Steam上處於搶先體驗階段).
這類遊戲都是生存合作類做任務打怪獸等, 很吸引. 從而令我構思想製作一下這類型遊戲.
那麼就開始了一些基本設定和移動方式.
之後就開始射擊方面操作.
在網上看一些有關 Hitscan (點擊掃描) [1] [2] [3] 和 Projectile (拋射) 的資料 [4]
列出一些比較:
Hitscan (點擊掃描)
- 一點即中
- 沒有延遲
Projectile (拋射)
- 拋射物體
- 空中運動時間
Hitscan (點擊掃描)
實例一下 Hitscan 利用 Raycast
因為射直線太過單一, 增加一些遊戲趣味加入一些方向變數
發覺還想加強真實感, 增加一些子彈下垂感覺.
由於 Raycast 都是射直線出來, 所以我要透過好幾十條 Ray 來模擬出子彈下垂的感覺.
每一次 Ray 連 Ray (黃色的直線) 都會累加下垂變數做出Ray能下垂.
現在感覺好像很不錯, 有方向變數還下垂力
Projectile (拋射)
接著就實例一下 Projectile,
做法比較簡單只要在要拋射物的 Rigidbody 增加動力 AddForce 就可以了
由於 Projectile 本身會跟世界重力物理關係, 如果動力不是很大就已經有下子彈下垂感覺
所以我們在加入一些方向變數就可以了
成品
最後我選擇了 Projectile 去作子彈處理現階段.
由於要仿字彈速度快關係, 要將 Rigidbody 的 Collision Detection 設定 Continuous Dynamic. 因太快會令到在觸法上有些問題. 因為上一個 Update (Tick) 興下一個 Update 位置差距問題. 所以這是用 Projectile 做子彈要處理的問題.
暫時做了一些類型的槍來做, 分別有 手槍, 衝鋒槍, 霰彈槍.
還借來 Unity tutorial 的假人作目標 XD