unity發射斜射線 Unity發射射線

2021-10-19 23:15:00 字數 1000 閱讀 1933

void update () {

shootraya();

shootrayb();

private void shootraya()

//例項化射線,引數1 開始位置, 引數2 結束位置

ray ray = new ray(vector3.zero, transform.position);

raycasthit hit;

//發射乙個長度為10的射線,如果沒有碰撞到物體,則射線不顯示,碰撞到目標則顯示出一條直線

if (physics.raycast(ray, out hit, 10))

print("擊中目標");

//射線的起點和終點

debug.drawline(ray.origin, hit.point);

//print("起點   " + ray.origin + "      終點   " + ray.getpoint(10));

private void shootrayb()

//例項射線, input.mouseposition為螢幕座標

ray ray = camera.main.screenpointtoray(input.mouseposition);

raycasthit hit222;

if (physics.raycast(ray222, out hit))

print("擊中目標");

//向射線方向發射一條長為10的射線,該方法返回true說明射線射到某物體,返回false說明射線沒有射到任何物體

out hit, 10)

//向射線方向發射一條射線,無限長

out hit)

//該方法來建立一條由攝像機向滑鼠當前位置發射的射線,然後使用physics.raycast()判斷這條射線是否與某遊戲物件相交,如果該方法返回true則表示相交,返回false則表示未相交

ray ray = camera.main.screenpointtoray(input.mouseposition);

Unity 射線檢測

要使用射線檢測,物體必須是觸發器或者碰撞器。什麼是觸發器,碰撞器請看 射線檢測函式在physics 類中。由於射線無法看見,除錯起來非常不方便。unity 給我們提供了乙個畫射線的方法debug.drawray,便於除錯。debug.drawray需要在update中使用,否則渲染一幀就會消失。一幀...

Unity 射線檢測

射線是乙個無窮的線,開始於origin並沿著direction方向。例 ray ray new ray new vector3 1,1,1 new vector3 0,0,0 例2 ray ray2 camera.main.screenpointtoray input.mouseposition 從...

Unity之射線穿透

一般的射線射中物體後就被阻擋了,假如碰到物體後,就會被攔截。如果我們想實現穿透某些物體,或者使射線不穿透ui的話。這時候就需要穿透的知識了。下面寫乙個簡單的射線。public transform raystartpoint private ray ray use this for initializ...