程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 【Unity3D基礎教程】給初學者看的Unity教程(四):通過制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D

【Unity3D基礎教程】給初學者看的Unity教程(四):通過制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D

編輯:C#入門知識

作者:王選易,出處:http://www.cnblogs.com/neverdie/ 歡迎轉載,也請保留這段聲明。如果你喜歡這篇文章,請點【推薦】。謝謝!

QQ圖片20140529123319

引子

在第一篇文章【Unity3D基礎教程】給初學者看的Unity教程(一):GameObject,Compoent,Time,Input,Physics我已經講過了一些關於剛體和碰撞的關系,這次我們就通過Flappy Bird這個事例來講解一下剛體和碰撞體在游戲中的具體應用。相關代碼可以參考Flappy Bird的源碼。

認識RigidBody

rigidbody2d

注意當Gravity Scale設置為0時,該剛體不再受重力影響。

認識Collider2D

在Add Component選項中點擊添加Physics2D中的Collider2D即可添加一個碰撞器,碰撞器有以下三種:

  • BoxCollider2D:盒狀碰撞器,一般為矩形。
  • CircleCollider2D:圓形碰撞器。
  • PolygonCollider2D:多邊形碰撞器

我們在為一個2D GameObject添加一個Collider時,這個Collider會自動選擇最合適的大小,但是你可以使用Shift+鼠標左鍵對Collider的邊界進行調整。在多邊形中,還可以通過Ctrl+鼠標左鍵來刪除某個多邊形頂點。

當然,針對同一個剛體,我們可以為這個剛體添加多個碰撞提來構造更加復雜的碰撞結構,在官方的巖石Demo – 2D Platformer中你可以看到相應的事例。

另外,我們可以通過將動畫和剛體的運動結合的方式來構建更加有趣的運動效果,通過Transform的變換和通過RigidBody的變換不一定非得是必取其一的,關於動畫的知識可以看看我的這篇博客:【Unity3D基礎教程】給初學者看的Unity教程(三):通過制作Flappy Bird了解Native 2D中的Sprite,Animation。

關於Is Trigger

如果對一個碰撞器勾選了Is Trigger選項,它就不會與其他沒有勾選Is Trigger的碰撞器發生剛體碰撞,而會發生“Trigger 碰撞”,也就是說,這時碰撞時發送的消息是Trigger消息,而不是Collision消息,相應地在腳本中我們要對OnTriggerEnter進行重載,而不是對OnCollisionEnter進行重載。

下圖對Collision和Trigger進行了總結,在分別勾選某些屬性時,都會發送哪些消息:

collision_chart

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved