Unity3D 槍戰遊戲 發射子彈 射線檢測

2022-02-01 11:04:29 字數 597 閱讀 9091

一、子彈的碰撞檢測:

因為子彈的移動速度非常的快,那麼如果為子彈新增乙個collider,就有可能檢測不到了。

因為collider是每一幀在執行,第一幀子彈可能在100公尺處,那麼下一幀就在900公尺處了,

那麼中間的障礙物就不能被檢測到了。

所以就需要射線檢測:

在每一幀的執行,都向上一幀發射射線,不斷地檢測射線中是否有穿過的障礙物體  

1

void

update ()

二、子彈的生成

首先想到的是在槍口生成子彈,然後使子彈發生移動

如果是這樣的話,玩家就不能指哪打哪

所以需要在螢幕的正**,來生成子彈

依舊運用射線,讓子彈延射線方向移動

獲得螢幕**作為射線原點

發射射線

如果射線碰撞到物體,返回該點,確定原點與該點的方向,子彈沿該方向移動

如果沒有,則目標點為從原點向前移動一定距離,作為目標點,確定方向,子彈沿該方向移動

1

//開始射擊

2void

shoot() else

23 }

Unity3D 槍戰遊戲 發射子彈 射線檢測

一 子彈的碰撞檢測 因為子彈的移動速度非常的快,那麼如果為子彈新增乙個collider,就有可能檢測不到了。因為collider是每一幀在執行,第一幀子彈可能在100公尺處,那麼下一幀就在900公尺處了,那麼中間的障礙物就不能被檢測到了。所以就需要射線檢測 在每一幀的執行,都向上一幀發射射線,不斷地...

Unity3D遊戲開發

入門級unity安裝教程 一 unity五大面板 unity3d的介紹 1 介面 選單 面板 元件 unity5.x 編輯器介紹 unity開啟篇 一 滑鼠右鍵 wsadeq前後左右上下移動 shift加速移動 滑鼠右鍵旋轉檢視 滑鼠中鍵移動檢視 alt 右鍵縮放 alt 左鍵旋轉物體視角 q移動場...

Unity3D遊戲開發初探

1 如何在遊戲指令碼程式中建立物件而不是一開始就建立好物件?使用gameobject的靜態方法 createprimitive view code 其中在createcube方法中,使用gameobject.createprimitive方法來建立cube型別的遊戲物件例項,設定了它出現的座標並為它...