基本上我想制作一個用于跳躍的光線投射,但由于某種原因,光線投射的距離是錯誤的并且永遠不會改變,而且它的位置非常錯誤,我什至找不到它:
ray2D = Physics2D.Raycast(transform.position, -Vector2.up, .1f, GroundedLayers);
Debug.Log(ray2D.distance);
isGrounded = groundCheck();
接地層不包括玩家,距離始終回傳為 0,接地始終為假,并且 Gizmos 線僅在我打開預制件時繪制,而不是在場景中:

這里距離設定為 .1f 但顯示與 1f 相同
(編輯:好的,所以我檢查了一下,由于某種原因,光線投射發生在 0、-1 左右,即使那離玩家變換還很遠?)

uj5u.com熱心網友回復:
試試 Vector2.down 嗎?
可以嘗試的替代方法:
場景中的玩家和預制件一樣嗎?增加距離。在玩家腳下添加一個新的 GameObject,在腳本中參考它并從那里呼叫 Raycast。ray2d 是 RayCastHit2d 嗎?您的地面物件標簽是否正確,包括所有語法/大寫字母?嘗試在除錯中輸出 ray2d.collider.name 以查看您實際擊中的內容。如果您使用的是剛體,請嘗試使用剛體 2d。位置而不是 transform.position
您是否在層次結構中選擇了玩家?這是查看小玩意所必需的。
uj5u.com熱心網友回復:
我發現 raycast 檢測到了一個不可見的觸發器,所以我不得不把它放在另一層:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/424504.html
