歡迎來到unity學習、unity培訓、unity企業培訓教育專區,這裏有很多U3D資源、U3D培訓視頻、U3D教程、U3D常見問題、U3D項目源碼,我們致力於打造業內unity3d培訓、學習第一品牌。
忽視碰撞:
作用:
使碰撞體1和碰撞體2的碰撞偵測無效。
忽略碰撞情況下的限制:
1. 保存場景時忽略狀態不能保存。
2. 只能在活動的對象物體上應用。如果用在失效的物體上,必須要調用一次
格式:
Physics.IgnoreCollision(bullet(除去掛腳本的物體,另一個要忽視碰撞的物體).collider, this.collider);
E.g
public GameObject culb;
Void Start(){
Physics.IgnoreCollision(culb.collider, this.collider);
}
射線:
定義:
射線是一個無窮的線
創建射線:
Raycast (origin : Vector3, direction : Vector3, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers)
參數解釋:
origin:射線起始點
direction:射線方向
distance:射線長度
LayerMask:只選定Layermask層內的碰撞器,其它層內碰撞器忽略。
代碼中的應用:
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
//定義一條從攝像機指向鼠標的位置
Ray hit : RaycastHit;
//定義一個碰撞
if (Physics.Raycast (Ray, hit, 100)) {
//判斷在100的距離內是否有碰撞
Debug.DrawLine (ray.origin, hit.point);
//繪製兩點的線
}