【Unity 3D】學習筆記三十七:物理引擎——碰撞與休眠

來源:互聯網
上載者:User

標籤:style   blog   http   使用   io   strong   ar   2014   art   

碰撞與休眠


上一篇筆記說過,當給予遊戲對象剛體這個組件以後,那麼這個組件將存在碰撞的可能性。一旦剛體開始運動,那麼系統方法便會監視剛體的碰撞狀態。一般剛體的碰撞分為三種:進入碰撞,碰撞中,和碰撞結束。關於休眠能夠理解成為讓遊戲對象變成精巧狀態。假設給某個遊戲對象休眠的狀態,那麼這個物體將立刻精巧,不再運動。


碰撞

首先學習下碰撞幾個重要的方法:

OnCollisionEnter(  ):剛體開始接觸的時候,馬上調用。

OnCollisionStay(  ):碰撞過程中,每幀都會調用此方法,直到撞擊結束。

OnCollisionExit(  ):碰撞停止時,調用。


給代碼(下面代碼僅僅是整個範例中的一部分,假設須要重建項目,我寫完整個unity入門就上傳全部的代碼):

using UnityEngine;using System.Collections;public class CollisionTest : MonoBehaviour {//碰撞顯示資訊string show = null;void Start () {//預設顯示內容show = "未發生碰撞";}//進入碰撞void OnCollisionEnter(Collision collision){show = "進入碰撞,碰撞名稱:" + collision.gameObject.name;}//碰撞中void OnCollisionStay(Collision collision){show = "碰撞中,碰撞名稱:" + collision.gameObject.name;}//碰撞結束void OnCollisionExit(Collision collision){show = "碰撞結束,碰撞名稱:" + collision.gameObject.name;//碰撞結束後讓物體休眠collision.gameObject.rigidbody.Sleep();}void OnGUI(){//將碰撞資訊顯示出來GUI.Label(new Rect(100,0,300,40),show);}}



碰撞器

遊戲對象假設須要感應碰撞,那麼就必須為其加入碰撞器。預設情況下,建立遊戲對象時,會自己主動將碰撞器組件加入當中,而碰撞器組件決定了模型碰撞的方式。unity提供了5種碰撞器,各自是:box collider(盒子碰撞器),sphere collider(球體碰撞器),capsule collider(膠囊碰撞器),mesh collider(網格碰撞器),wheel collider(車輪碰撞器)。當中box collider(盒子碰撞器)適用與立方體對象之間的碰撞,sphere collider(球體碰撞器)適用於球體對象之間,capsule collider(膠囊碰撞器)適用於膠囊體對象之間,mesh collider(網格碰撞器)適用於自己定義模型自身網格決定,wheel collider(車輪碰撞器)適用於車輪與地面或者其它對象之間的碰撞。



加入碰撞器

在導覽功能表條裡選擇component——physics然後選擇種類。




物理材質

物理材質可設定物體的表面材質,不同的表面材質可影響碰撞後的物理效果。物理材質可加入不論什麼碰撞器中。首先得匯入物理材質的資源,能夠選擇匯入系統提供的標準包。import——physic materials。在標準包中提供5種經常使用的材質:bouncy(彈性),ice(冰),metal(金屬),rubber(橡膠),wood(木質)


,給球加入了彈性材質,那個球在下落的時候接觸地面變會彈回去。

除了unity標準資源套件裡的5個物理材質,也能夠自行建立物理材質。在project視圖中點擊create——physic material就可以。例如以:


dynamic friction:動態摩擦,取值在0到1之間,0最小,1最大。

static friction:靜態摩擦,取值在0到1之間,0最小,1最大。

bounciness:碰撞反彈係數,取值在0到1之間,0最小,1最大。

friction combine:普通碰撞後的摩擦模式。

bounce combine:反彈碰撞後的摩擦模式。

friction direction 2:摩擦方向,方向分X軸,Y軸,Z軸。

dynamic friction 2:動摩擦係數,摩擦方向依據friction direction 2設定。

static friction 2:靜摩擦係數,摩擦方向依據friction direction 2設定。


【Unity 3D】學習筆記三十七:物理引擎——碰撞與休眠

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.