003-unity3d 物理引擎簡介以及示例
一、概述
物理引擎就是模擬真實世界中物體碰撞、跌落等反應的引擎,通過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 物理引擎簡介以及示例