通過錄影機
我們通過錄影機讓螢幕點轉化為射線
ray = camera.main.screenpointtoray(input.mouseposition);
直接new出來
ray ray = new ray(v3 origin, v3 dir); //指定原點和方向
physics.raycast(ray, out hit); //進行碰撞檢測
//hit當中包含了很多碰撞資訊
//hit.point 擷取碰撞點
//hit.normal 碰撞面的法線方向,即與碰撞面垂直的線
//hit.distance 碰撞點到射線原點的距離
// hit.texturecoord 紋理坐标 可以用于紋理或者彈痕繪制,如果對象沒有meshcolider則傳回null
為什麼要建立射線
我們通過input.mouseposition擷取到的v3坐标是在z方向是0,我通過log列印之後,隻是在x,y 方向上有輸出
input.mouseposition 是實時擷取滑鼠點的位置,如果僅僅是想要在點選時擷取其位置,那麼要加一個if語句
我們可以通過hit.point擷取滑鼠點選的三維空間的坐标
if(input.getkeydown(0))
{
if(physics.raycast(ray, out hit))
{
agent.setdestination(hit.point);
}
}