[小鞏u3d] 關於Raycast對BoxCollider和BoxCollider2d的碰撞監測規則


以下為密經過親手測的記錄,使用UNITY 2017.2.2

對BoxCollider的碰撞監測使用,可以探測到一個3d碰撞體

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
Debug.Log(hit.transform.name);
}

對2d物理碰撞和的監測使用,可以探測到射線經過的所有box,形成一個烤串,烤串根據z來進行排序,

而且:烤串如果綁定SpriteRenderer,它的Sorting Layer,Order in Layer只對圖片的顯示層級有效,與BoxCollider2d無關,烤串之和物理坐標Z有關

Debug.Log("----phy----");
RaycastHit2D[] hits = Physics2D.RaycastAll(ray.origin, ray.direction);
foreach(var i in hits)
{
Debug.Log(i.transform.name.ToString());
}

!+++++++++++++++++++

2017.11.28第二次編輯,攝像機對BoxCollider2d的碰撞規則有影響

再正交相機下,獲得的烤串列表比較靠前的再前面,但是透視相機得到的卻是相反的結果

及:再不同模式相機下得到的烤串序列是不同的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM