我現在再做一個坦克的游戲 , 炮彈帶有剛體, 所以發射的子彈是拋物線的 , 炮管的前面是攝像機的位置,攝像機有一條向前的射線可以檢測在炮管直線上的敵人,用來瞄準敵人的 , 我應該怎么寫才能讓發射的子彈打中我攝像機瞄準地敵人,而不是子彈到了半路就往下掉了
或者誰有 https://blog.csdn.net/hany3000/article/details/9476907?locationNum=5 這個的完整的代碼啊 我寫出來了但是不知道怎么用
uj5u.com熱心網友回復:
你的文案中提及的是兩個高度不一的位置,我上面貼說的是 同高度的需要一次換算推導
拋物線運動是鏡像的,將上升階段的時間和下降時間設為 t1 t2
總飛行時間是 兩者高度差為L 那么L = 0.5 g t1^2 - 0.5 g t2^2 t1 + t2 = 總時長,總時長可知,可以消元求解
uj5u.com熱心網友回復:
。。。。 啊 小白一個 我有點聽不懂啊 那網站上的那個代碼 有沒有完整的代碼啊 能直接掛在上呼叫函式就好的那種 感覺理解不了uj5u.com熱心網友回復:
假設你的坦克和目標物體處于同一個水平面,那么最簡單的辦法就是取坦克和目標物體直接的中點,你只需要給炮彈添加一個不斷變小的Y方向的速度,當到達中點時Y方向的速度為0,到達目標時Y方向的速度正好和發射的速度相反。這樣計算起來最簡單(不要使用重力)uj5u.com熱心網友回復:
用射線做激光坦克?uj5u.com熱心網友回復:
不用重力不就好了uj5u.com熱心網友回復:
我這些都是自己做的 初中物理學復習下吧 并不難的
只多了一個維度而已,然后速度也好 加速度也好 都是三維向量,可以拆分結合
uj5u.com熱心網友回復:
在炮彈上加一個腳本,每幀重置向前位置。public Vector3 Vect;//記錄上一幀位置
void Start()
{
Vect=transform.position;
}
void Updata()
{
if(transform.position!=Vect)
{
transform.forward=transform.position-Vect;
}
}
uj5u.com熱心網友回復:
在子彈上加個rigibody重力組件,勾下use gravityuj5u.com熱心網友回復:
這是個偽命題如果你要的是有物理的炮彈 那就相當于真實環境下的模擬
誰能準確判斷出炮彈的落點?你所說的螢屏準心就是不存在的
如果你要的只是簡單的射線碰撞,拋物線只是輔助的話,那就無所謂了,初中知識就行了
水平方向 勻速運動
豎直方向 一上一下...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/45715.html
標籤:Unity3D
下一篇:FPS手游問題
