忽視碰撞和射線

歡迎來到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.InfinitylayerMask : 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);

        //繪製兩點的線

    }
發佈了50 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章