raycasting

    0熱度

    2回答

    我想設置透明的玩家和相機之間的所有樹木,我的遊戲是自上而下,並且相機和玩家之間的矢量改變。那麼,如何在兩點之間Raycast並獲取所有被ray射擊的對象呢?我知道在兩點之間有一個用於raycast的Linecast,但是它只返回第一個對象,而另一方面RaycastAll只能在特定方向上投射......任何想法如何在播放器和相機之間投射光線並獲取所有被擊中的對象?

    1熱度

    1回答

    我正在3D空間中工作。我有一條射線,或者更具體地說,是3D空間中光線的起始和透射向量。我也有一個三角形,我知道這個三角形是被射線擊中的。用三角形表示我有三個三維點。我也可以很容易地計算出這個三角形的法線向量。 現在我需要得到一個新的射線,這將是特定命中後的反射。 我也不知道三角形的接觸點在哪裏,但顯然必須考慮到獲得反射光線。那一點將成爲新射線的開始。 這在2D中很容易做,但我無法弄清楚如何在3D中

    0熱度

    1回答

    我有一個問題,當我寫這個播放聲音時,播放器距離4單位米的距離並按下「e」,但它給了我一個錯誤,hit無法轉換爲float 。我現在應該怎麼做? public AudioSource sound; public int rayLength = 4; public GameObject doorText; RaycastHit hit; void Update() { var

    0熱度

    1回答

    我有它被設計爲可點擊collider2d一個遊戲物體,並且我也有一個UI按鈕將跟隨而玩家移動相機,事情是,他們有時可能會重疊,並且當它們重疊時,當用戶點擊重疊區域時,我確定用戶想要點擊對象(這是通過raycast2d命中的),所以我應該防止按鈕被點擊。 可點擊遊戲物體的光線投射植入該腳本如下: private void checkTouch() { if (Input.tou

    0熱度

    2回答

    我在我的地圖上填充3D標記。下一個目標是檢測哪個標記被點擊。附上每個標記的UI按鈕,但這不是一個好方法。任何人都可以建議更好的東

    1熱度

    2回答

    我有一個腳本,我使用多個raycasts從一個對象來檢查是否有一個特定的圖層蒙版被命中,我在他們之間使用for循環,它工作正常。 但問題是:如果光線的一個被擊中boolean將true,如果「所有」的光線沒有命中,boolean將false。但問題是我不知道如何檢查。 for (int i = 0; i < rays; i++) { Vector2 raysStart = raysSt

    0熱度

    1回答

    我有使用SDF函數關於GLSL球體跟蹤/光線跟蹤一些問題: 我的主程序(C++,使用福爾康)生成畫面四並將該頂點着色器與每頂點inPosition。頂點着色器可以訪問窗口分辨率,投影矩陣和視圖矩陣。投影矩陣由glm::perspective(45.0, 1920/1080, 0.1, 100.0);生成。 在頂點着色器中,我嘗試通過圖像平面計算從原點vec4(0.0, 0.0, 0.0, 1.0)

    0熱度

    1回答

    在我的遊戲中,玩家使用虛擬模擬來瞄準特定對象,當他釋放模擬角色時應該朝該對象移動。 我要存儲對象的位置(更像,玩家應移動基於對象的位置方向)的一個變量,但只有當它是光線與相撞的最後一件事: Vector3 targetPos; RaycastHit hit; if (Physics.Raycast (pos, dir, out hit, 10, targetLayer)) { V

    0熱度

    3回答

    我來檢查,如果一個遊戲對象可以看到其他的遊戲對象,而無需任何阻斷其視圖功能: public bool CheckVision(GameObject target) { RaycastHit2D ray = (Physics2D.Raycast(transform.position, target.transform.position - transform.position, m_Vi

    0熱度

    1回答

    我有一個攝像頭,它將userInterface(畫布)對象顯示在我的相機前面。 我只更新我的用戶界面位置,如果相機光線不擊中我的userInterface對象對撞機。像這樣 public class UIPlacerAtCamFront : MonoBehaviour { public GameObject userInterface; public float placem