物理模擬引擎.docVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
物理模擬引擎.doc

Unity 物理模擬引擎 請下載本單元使用的資源包(Physics test.unitypackage) /open?id=0B9nexOsTrwhOYl9YRDFDVjgyZkk Unity提供了許多物理模擬的功能,包含物體重量、慣性、彈力等物理特性,還有速度、加速度、碰撞和反饋等,這些物理屬性存在於各種不同的物理元件中。 下面我們將以物理元件(component)為基礎,介紹這些物理模擬。 1. Collider (碰撞體) Collider是描述物體碰撞的有效範圍,一個Collider要綁在Rigidbody(剛體)上才能產生碰撞效果和事件。碰撞事件可以觸發指定的行為。 Unity 提供了多種類型的碰撞體: Box Collider 方塊碰撞體 - 適用於方形的碰撞偵測(例如建築物、桌椅、汽車等)。 Sphere Collider 球形碰撞體 - 適用於球形的碰撞偵測。 Capsule Collider 膠囊碰撞體 - 適用於樹木、圓柱的碰撞偵測。 Mesh Collider 網格碰撞體 - 適用於形狀複雜的物件 這些碰撞體只是形狀不同而已,我們也可以使用編輯器再細部調整形狀。 每個Collider (碰撞體)都會有Is Trigger和Material兩種屬性 2. Rigidbody (剛體) 為了讓物體有重力或碰撞的效果就要加入Rigidbody。 現在先做一個簡單的實驗, 建立一個新場景,放入Plane和Cube,並讓Cube置於Plane上面。 選取方塊,加入Rigidbody (在Inspector中按add component,選physics Rigidbody) 執行後,就可以看到Cuble掉到Plane上了。 Rigidbody的屬性功能如下: angularDrag:角阻力。旋轉時的阻力。 drag:物體位移時的阻力。 isKinematie:啟用的話,碰撞或者關節將不再會影響這個剛體。 Mass:剛體的質量。 useGravity:重力是否影響這個剛體。 constraints: 物體移動、旋轉時地限制 將Cube複製一份成Cube1,並將Cube1再往上提高一點,將Cube的isKinematie打勾,則Cube不受重力影響,因此,執行後Cube1就掉到Cube上。 3. 自動生成骨牌 為了要測試施力的效果,我們要先製作骨牌,請依下面步驟進行: step 1 先開一個新的場景,做一個骨牌的預置物件(Prefab),然後,放入開始和結束的骨牌(命名為DominoesStart, DominoesEnd) step 2 建立腳本SetDominoes.cs (若專案中已經有此腳本,不能重複)。 SetDominoes.cs using UnityEngine; using System.Collections; public class SetDominoes : MonoBehaviour { public GameObject dominoePrefab; // 骨牌的Prefab public GameObject dominoeEnd; //結束的骨牌 public int NumCenterDom = 25; //中間的骨牌數量 void Start() { // 開始方塊到結束方塊的位移量 Vector3 dir = dominoeEnd.transform.position - transform.position; //算出間隔的長度 float interval = dir.magnitude / (NumCenterDom+1); //將dir正規劃程單位向量 dir.Normalize(); for (int i=1; i=NumCenterDom; i++){ GameObject newDom = (GameObject)Instantiate(dominoePrefab); newDom.transform.position = transform.position + dir*interval*i; newDom.transform.rotation = transform.rotation; } } } step 3 將SetDominoes.cs起始骨牌(DominoesStart)上,並設定Dominoes Prefab和DominoesEnd兩參數 step 4 在場景加入一個Plane來支撐骨牌,執行後就可以看到一排骨牌了。 (see create dominoes) 4. AddForce 接下來,我們要探討施力對骨牌的影響了! 最常使用的方式是AddForce(),對物體中心

文档评论(0)

ailuojue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档