0
在我的遊戲中,玩家使用虛擬模擬來瞄準特定對象,當他釋放模擬角色時應該朝該對象移動。 我要存儲對象的位置(更像,玩家應移動基於對象的位置方向)的一個變量,但只有當它是光線與相撞的最後一件事:存儲Raycast命中信息
Vector3 targetPos;
RaycastHit hit;
if (Physics.Raycast (pos, dir, out hit, 10, targetLayer)) {
Vector3 moveDir = (hit.point - transform.position).normalized;
targetPos = moveDir;
} else {
targetPos = Vector3.zero;
}
這樣做這個targetPos
變量在釋放模擬後總是返回到零,即使最後碰撞的對象是特定的對象。
編輯: 基於@MukeshSaini評論解決。謝謝,所有。
你的問題是什麼? – Programmer
你的代碼是否在if語句中出現?你可以通過一個'BreakPoint'和調試來確認。 – Hristo
@編程器,OP在釋放模擬器後不希望'targetPos'值變爲零。 @ Abdou023,你能不能分享更多的代碼,我認爲你甚至在用戶發佈模擬後會使用raycast,它可能會在'Physics.Raycast'中返回false,並在'else'塊中將'targetPos'設置爲'Vector3.zero'。 –