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;
}
}
}
如果大家還有什麼困難的話可以關注我的日誌:
還可以關注我們的狗刨網: