Unity- physical 常用屬性

前言

physical 引擎就是在遊戲中模擬真實世界中的物理效果。Unity內建了NVIDIA的Physx物理引擎,Physx是目前使用最為廣泛的物理引擎,被很多遊戲大作所採用,開發者可以通過物理引擎高效、逼真地模擬剛體碰撞、車輛駕駛、布料、重力等物理效果,使遊戲畫面更加真實而生動。

physical 引擎主要包含三個核心內容:

1. Collider是最基本的觸發物理的條件,例如碰撞檢測。基本上,沒有Collider物理系統基本沒有意義(除了重力)


2. Rigidbody是物體的基本物理屬性設定,當檢測碰撞完之後,就要計算物理效果,而Rigidbody提供計算基本引數。


3. PhysicMaterial則是附加的基本物理引數,是一個物理材質,UNITY3D有自帶預設的物理材質的係數(在Edit/Project Settings/Physic下設定),它參與碰撞的計算例如反彈效果摩擦效果等。

三大類型的Collider


1、Static Collider(靜態碰撞器):帶有Collider沒有新增Rigidbody的物件,用於靜止物體如地理環境。


2、Rigidbody collider:帶有rigidbody的collider物件,能夠根據物理引擎很好的響應外力和碰撞作用。


3、Kinematic rigidbody collider:帶有rigidbody的collider物件,開啟Is kinematic。


PhysicMaterial有哪些主要屬性?


dynamicFriction:移動摩擦力,值在0到1之間。

staticFriction:靜止摩擦力,值在0到1之間。



Character Controller(角色控制器)的特性 角色本身不受Physics影響,需要接受外力作用時,使用OnCharacterColliderHit();

使用角色控制器如何防止角色經常卡住?
Skin Width:設定為radius的10%;
Step offset:對於2meter(米)高的Character設為0.1到0.4;
Min move distance設為0即可。


Rigidbody常用屬性


開啟Is Kinematic後物體不受物理引擎影響,只受Transform控制;
Freeze Position凍結位置軸向,Freeze Rotation凍結方向軸向,凍結之後的軸向只受Transform控制;使用Physics時不要使用Transform


CharacterController和Rigidbody的區別?


CharacterController自帶膠囊碰撞器,裡面包含有剛體的屬性;
Rigidbody就是剛體,使物體帶有剛體的特徵。


什麼是Trigger?


Collider勾選Is Trigger屬性,碰撞器變成觸發器;
在物體發生碰撞的整個過程中,有幾個階段,分別列出對應的函式?
OnCollisionEnter(進入)、OnCollisionStay(保持)、OnCollisionExit(退出)


什麼叫做鏈條關節?


Hinge Joint,可以模擬兩個物體間用一根鏈條連線在一起的情況,能保持兩個物體在一個固定距離內部相互移動而不產生作用力,但是達到固定距離後就會產生拉力。

小結:

本篇主要講解的是一些基本的觀念以及常用的物理屬性,在我們製作場景的時候會常常需要用到一些物理的屬性,如果大家對於屬性不了解的話可以將一些關鍵字記得,其實網路上就很多的範例以及觀念可以給大家參考了。

參考文獻:https://docs.unity3d.com/Manual/PhysicsSection.html

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *