1. 程式人生 > >unity3D__忽略碰撞和射線

unity3D__忽略碰撞和射線

1.忽略碰撞:

    有些時候我們不想讓指定的兩物件發生碰撞,即要忽略他們的碰撞

public Transform ball;  

void Start() { 

Physics.IgnoreCollision(ball.collider, this.collider);  

}

2.射線

    射線是3D世界中一個點向一個方向發射無終點的線。在unity3d中我們發射的射線一旦與其他的碰撞器發生碰撞,射線將停止發射。在遊戲製作過程中我們可以通過判斷射線是否發生了碰撞,並且可以判斷射線和誰發生了碰撞。應用範圍非常廣泛,如射擊類遊戲中用它來判斷是否射中目標。

(1)、我們要想在遊戲中發射一條射線,必須要有兩個元素,一個起始點,一個方向。

(2)、Ray.origin:射線起點

(3)、Ray.direction:射線的方向

(4)、建立一條射線的方法:

           Ray (origin : Vector3, direction : Vector3)

(5)、Origin是射線的起點,direction是射線的方向。

(6)、首先在場景中建立一個CUBE,建立一個c#檔案,並輸入如下程式碼:

public Transform explosion;      

void Update ()       

{

//獲取滑鼠點選事件

if(Input.GetMouseButtonDown(0))

{

 //定義一條射線

Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);

RaycastHit hit;

//如果射線發生碰撞

if(Physics.Raycast (ray, out hit, 100))

{

Transform theClonedExplosion;  //例項化物體

//hit.point為碰撞點的座標

theClonedExplosion =Instantiate(explosion, hit.point, transform.rotation)as Transform;

}

}

}

如果大家還有什麼困難的話可以關注我的日誌:

還可以關注我們的狗刨網: