實現效果:按q發射一條不存在實體碰撞的射線,進行碰撞檢測達到開槍的效果
一:新增鍵盤事件q
二:獲取槍(上圖mesh2p)的座標位置,準心的骨骼名稱
三:獲取乙個自己(self)的向量,乘以射線的長度(5000)
一:新增射線方法:linetracebychannel
1.在drawdebugtype裡,預設none不顯示射線,
foroneframe發射一條射線,
forduration發射多段射線,比如說實現多段射線組成的拋物線。
damagedactor碰撞目標
basedamage基本傷害
1.傷害事件,數值必須不等於0,anydamage事件才能被觸發
2.場景裡目標碰撞的物件裡,必須有射線。
三:新增乙個**的特效
1.在槍枝骨骼前端新增插槽
2.角色藍圖裡,新增乙個粒子的變數muzzleeffect
3.新增乙個建立粒子的方法spawnemitterattached
4.在acttach point name寫上要繫結特效的骨骼插槽位置
5.注意,這裡的向量,要獲取槍枝自身的向量,不然特效會出現單一方向
最終效果如下圖:
unity射線檢測碰撞
使用普通的碰撞體檢測,檢測時不連續的,是每隔0.02秒進行的離散檢測,這樣在被檢測的物體速度比較快時,就會由直接穿過物體的可能,這個時候,就需要使用射線檢測了。為了實現高速狀態下的碰撞檢測,要使用連續的射線來完成這樣乙個功能。使用 new ray建立射線new ray 發射位置,發射方向乘上發射速度...
Ray建立射線,碰撞檢測
建立射線,如下,表示只在2d layer下建立射線,表示只能檢測2d下的物件 ray ray camera.main.screenpointtoray input.mouseposition raycasthit hititem int layer 1 layermask.nametolayer 2...
Unity3D總結 關於射線碰撞
1.static function raycast origin vector3 direction vector3 distance float mathf.infinity layermask int kdefaultraycastlayers bool 乙個靜態的發射射線的方法,在場景中投下可...