android+unity3D遊戲開發之簡單的碰撞檢測

來源:互聯網
上載者:User

在“Project”面板中單擊“Create”旁邊的小三角,選擇“javascript”建立一個名為“collision”的js檔案。雙擊它,系統啟動Monodevelop來編輯js檔案。

        清除裡面預設建立的代碼。寫上。


        function OnCollisionEnter(obj:Collision)

        {


                Debug.Log(obj.gameObject.name);

        }



        onCollisionEnter函數解釋:這個函數是在被綁定的物體與其他物體發生碰撞的時候被調用。

        obj參數解釋:被撞的物體參數,類型是Collision,在本例中就是“地板”.攜帶變數gameObject,是我們碰撞的物體name,就是我們為地板設定的name。

將指令檔拖到球上實現綁定:



        這步很容易操作,在"Project"面板中選中collision指令碼,按住滑鼠左鍵不放,直接拖入“Hierarchie”面板中,放到立方體上,鬆開滑鼠即完成綁定。


點頂部的小三角運行程式:



        程式運行結果,當球與地板碰撞時,unity3d底部狀態列會輸出地板的name


        


        搞定。

 

 

 

OnControllerColliderHit(),這個是用於角色碰撞的,物體如果附加了Charactor Controller(Unity內建的用於角色控制的指令碼)則使用這個函數檢測碰撞,這是不需要加剛體的。一般的剛體之間碰撞使用OnCollisionEnter(),範圍觸發用OnTriggerEnter(),如果你是讓兩個CUBE碰撞,請確保其中一個附加了RigidBody,

collision是個變數,通過它可以獲得你所碰撞的目標的屬性以及碰撞點資訊和相對速度,如:collision.collider.某個組件或指令碼。 void OnCollisionEnter(Collision collision){if(collision.collider.tag=="enemy")//tag是物體的標籤,相當於物體的類別名稱。在每一個物體的元件匣(也就是加指令碼的那個地區)的最上面可以找到,預設的是UnTagged,也就是沒有標籤,你找找,然後點擊會出現一個下拉式清單,預設的已有幾個Tag,你也可以加自訂的,點擊下拉式清單最下方的Add
Tag就可以加Tag,最後選擇一個Tag作為物體的名稱就可以了。{Destroy(collision.collider.gameObject);//如果檢測到對方是敵人,則消滅對方。}}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.