1. 程式人生 > >003-unity3d 物理引擎簡介以及示例

003-unity3d 物理引擎簡介以及示例

tco add too war 速度 blog 不同 創建 plan

一、概述

  物理引擎就是模擬真實世界中物體碰撞、跌落等反應的引擎,通過ballence、憤怒的小鳥等理解。Unity3D的物理引擎使用的是Nvidia的PhysX。

  物理引擎是一個計算機程序模擬牛頓力學模型,使用質量、速度、摩擦力和空氣阻力等變量。可以用來預測這種不同情況下的效果。它主要用在計算物理學和電子遊戲以及電腦動畫當中。

  物理引擎有兩種類型常見的型類:實時物理引擎和高精度物理引擎。高精度的物理引擎需要更多的處理能力來計算非常精確的物理,通常使用在科學研究(計算物理學)和電腦動畫電影制作。實時物理引擎使用通常使用在電子遊戲並且簡化運算,降低精確度增以減少計算時間,得到在電子遊戲當中可以接受的的處理速度。

二、示例

  選一個遊戲對象,主菜單→Component→Physics→Rigidbody,這樣就添加了剛體組件,一旦給一個GameObject添加剛體組件,他就會受重力、碰撞等的反應,最典型的就是“腳下無地”就會墜落、和其他剛體碰撞會反彈,無法進入等。地面用Plane,加光照會更好。

  開發步驟:

  1、創建項目,打開軟件,

    技術分享圖片

    技術分享圖片

  默認如下,

    技術分享圖片

  也可以手工新增加一個新的 Sence,

    技術分享圖片

  2、創建球體,點擊上圖create ,創建 3d object→Sphere.配置其坐標x:0 y:5 z:0

  3、設置球體為剛體,選中sphere,在Component上選擇Physics→Rigidbody,此時在Inspector,中可以看到

    技術分享圖片

    設置Drag 為1

    具體含義可看第一講安裝的文檔

    技術分享圖片

  4、設置球體材質

  技術分享圖片

  只導入必要的包

  技術分享圖片

  將材質屬性,拖拽至球體上即可

  5、添加地面

    在create→Plane即可,點擊工具欄運行即可看到效果。

  6、添加腳本

    技術分享圖片

    技術分享圖片

  7、腳本內容編寫

    設置腳本打開方式:edit→perferences→External Tool→選擇開發腳本工具即可

    腳本默認有兩個方法

    Start 對象初始化

    Update:每一幀調用時候執行

    在Update增加以下內容

if (Input.GetMouseButtonDown(0))
        {
            this.gameObject.GetComponent<Rigidbody>().AddForce(Vector3.forward, ForceMode.Impulse);
        }

  將腳本拖拽至具體遊戲推向即可,同一個腳本可以給多個遊戲對象。    

  運行測試點擊鼠標查看效果。

003-unity3d 物理引擎簡介以及示例