Unity基礎之物理引擎

2021-01-08 Mm說Unity

我們在unity裡面建了一個正方體cube , 要如何使這個cube可以跟現實中的物體一樣受重力呢 ? 這就需要用到Rigidbody(剛體)組件了 .

單擊cube , 在右邊的Inspector面板添加Rigidbody組件

添加完Rigidbody組件後,cube1就可以受重力影響了,運行unity時,cube1會因為受到重力往下落.

下面為大家介紹 Rigidbody 組件常用參數 :

1. Mass : 物體的質量 . 官方建議物體質量最好不要大於其他物體的100倍或者小於其他物體的 1/100 ;

2. Drag : 空氣阻力 . 數值越大,表示物體所受阻力越大,物體越難移動 ;

3. Angular Drag : 角阻力,也就是物體旋轉受到的阻力 ,數值越大物體越難旋轉 ;

4. Use Gravity : 是否開啟重力 , 開啟的話,遊戲物體會受重力影響 ;

5. Is Kinematic : 是否開啟動力學 . 如果開啟的話 , 遊戲物體將不再受物理引擎的影響 , 只能通過 Transform 來改變物體的位置,旋轉等 ;

如圖 cube1(紅色 , 勾選了 Is Kinematic ) , cube2 (綠色 , 沒勾選 Is Kinematic ) 原本處於同一高度, 運行狀態下 , cube2由於沒有勾選 Is Kinematic 選項 , 受到重力影響會下落 ;

6. Interpolate : 插值 . 用來控制剛體運動的抖動情況 , 因為物理運算和畫面更新不同步造成的. Interpolate是枚舉類型 , 有以下三個選項 .

(1) . None : 沒有插值

(2) . Interpolate : 內插值 . 基於前一幀的 Transform 來平滑此次的 Transform

(3) . Extrapolate : 外插值 . 基於下一幀的 Transform 來平滑此次的 Transform

如圖 cube1 (None) , cube2 (Interpolate) , cube3 (Extrapolate) .

遊戲運行時 :

cube1 : 出現抖動 ;

cube2 : 平滑落下 , 但是比 cube1 後落地;

cube3 : 平滑落下 , 但和 cube1 同時落地;

由此可以看出 , Interpolate 和 Extrapolate 的區別就在於使用的算法不一樣 , Extrapolate在物理上會比較準確 ;

7. Collision Detection : 碰撞檢測 . 用於控制避免高速運動的物體穿過其他的物體而並沒有發生碰撞 , 也是一個枚舉類型 , 有以下三個選項

(1) . Discrete : 離散碰撞檢測 . 與場景中其他所有的碰撞體進行碰撞檢測 , 為默認值 ;

(2) . Continuous : 連續碰撞檢測 . 適用於需要與連續動態碰撞檢測的對象相碰撞的對象. 很耗費性能 ,一般不用 ;

(3) . Continuous Dynamic : 連續動態碰撞檢測 . 適用於檢測快速運動的遊戲對象 ;

如圖 cube1 (Discrete) , cube2 (Continuous) , cube3 (Continuous Dynamic) 置於 1000米的高度 .

遊戲運行時 :

cube1 : 高速下落 , 穿過地面 ;

cube2 : 落在地面靜止 ;

cube3 : 落在地面靜止 ;

由此看出 : cube1 在高速運動時已經完全穿透 , cube2防止穿透靜態對象 , cube3 防止穿透包含 Continuous 和 Continuous Dynamic 選項的物體 .

8. Constraints : 約束 . 用來凍結物體 x ,y ,z 軸的移動和旋轉 .

(1) . Freeze Position : 凍結位置 . x , y , z 軸方向上 , 勾選狀態的話 , 在該軸上的移動無效 ;

(2) . Freeze Rotation : 凍結旋轉 . x , y , z 軸方向上 , 勾選狀態的話 , 在該軸上的旋轉無效 ;

好了 , 今天的剛體組件就介紹到這裡 ,大家有什麼問題可以在評論區留言 , 我會為大家解答 .

遊戲物體添加了剛體組件以後 , 就可以模擬碰撞了嗎 ? 答案是 No ... , 兩個或多個遊戲物體發生碰撞,只靠剛體是不夠的 , 明天為大家帶來另一個不可獲取的組件詳解 .

相關焦點

  • Unity 實用技巧 - 物理系統初識
    Unity中實際上有兩個獨立的物理引擎:一個用於3D物理,另一個用於2D物理。
  • 【官方說明】Unity 5 引擎專業版和個人版解析
    最新Unity 5的Professional Edition(專業版)具備全新而強大的功能,除了全局動態光照或是最新的基於物理的著色器之外,也把原本分開銷售的Team License放入,並含有12個月的Unity Cloud Build 和Unity Analytics 授權,價格只要1500美金一套或是月租75美金。
  • unity實戰之大主宰
    然後回到unity,點擊windows ->package manager,就能找到自己的資源,全部import這裡是獲取場景後的結果:如果要移動拋物線等,可以通過物理引擎加入rigid body,也可以自己定義複雜的算法。
  • 物理引擎學習-開篇
    雖然現在商用的物理引擎已經很多了,而且都非常成熟,但是引擎畢竟不是萬能的,有些特殊場合還是需要自己去實現。比如:要實現一個小遊戲,使用很簡單的碰撞檢測就夠了,引入龐大的物理引擎,效率反而低而且不夠靈活;要實現一些超自然場景。
  • Unity遊戲開發基礎知識整理
    Unity遊戲開發基礎知識整理 Unity3D是一個讓玩家輕鬆創建諸如三維視頻遊戲、建築可視化、實時三維動畫等類型互動內容的多平臺的綜合型遊戲開發工具
  • 程序猿必備基礎知識+高頻面試類型之3D數學
    下面是三維數學必備的幾個知識點,程序猿們好好地去掌握吧,下面用unity開發引擎來作為演示,unity是左手坐標系的:向量是指具有方向以及大小的量;標量是只具有大小,無方向的量;向量的歸一化就相當於把向量的大小變為一,而方向不變,往往用來代表方向在unity中,求向量的長度直接使用Vector3.
  • 王者榮耀是怎樣煉成的(三)unity組件與腳本
    還能看到,這個腳本using了UnityEngine的引擎。然後unity還幫我們寫了兩個方法Start()和Update()。Start():當遊戲運行起來,這個方法就會馬上執行且只執行一次。由此看來,這個方法非常適合做初始化的工作。事實上也是這樣的,我們常常在這個方法中做一些GetComponent()的操作。Update():循環調用,每一幀就調用一次。
  • 網易《天諭》攜手Unity引擎,引爆高品質遊戲市場
    1月5日,網易遊戲基於Unity引擎研發的高品質手遊《天諭》正式開放預下載,將於1月8日全平臺公測。作為網易2021年的開年大作,《天諭》手遊由網易遊戲雷火事業部開發,主打可自由探索的立體幻想大世界和千人同屏的流暢戰鬥體驗。
  • Unity 5引擎公布 成虛幻4引擎的強力競爭者
    Unity科技今天正式宣布了Unity 4引擎的下一代引擎:Unity 5。根據公司的說法,Unity 5將支持64位作業系統,並且帶有全面重做的聲音系統,物理單元和高級實時光影。
  • 《生死狙擊2》Unity引擎實力加持 次世代遊戲爆款再現
    遊戲引擎是指為遊戲設計者提供的編寫遊戲所需的各種工具和插件,從建模、動畫到光影、粒子特效,從物理系統、碰撞檢測到文件管理、網絡特性等,從而讓研發過程變得更加高效。提到頂尖遊戲引擎,很多玩家第一時間想到的可能是開發了上古捲軸系列、輻射系列的Creation引擎、開發了戰地系列、榮譽勳章系列的Frostbite Engine(寒霜引擎)、開發了孤島危機系列的cryengine,最不濟也是開發了絕對求生、堡壘之夜的虛幻4引擎。
  • unity 半透明渲染技巧(3則)
    unity 半透明渲染技巧(1):固定深度法半透明渲染排序問題 長期在各種3d引擎存在,這裡將一些針對性技巧。
  • 2021新年匯總:Unity項目原型快速開發資源,看這一篇就夠
    Example Game : https://assetstore.unity.com/packages/templates/flappy-bird-style-example-game-80330 Tower Defense Template : https://assetstore.unity.com/packages/essentials
  • 一篇上手LayaAir的3D物理引擎
    昨天,我們分享了一篇2D物理文檔《LayaAirIDE的可視化2D物理使用文檔》。今天,我們針對LayaAir引擎的初學者,以及對物理引擎使用不熟悉的開發者,再來分享一篇3D物理文檔,本篇文檔全面介紹了3D物理引擎使用的基礎能力。方便開發者快速上手。
  • Unity物理引擎篇 碰撞體
    碰撞體是物理組件中的一類 , 每個物理組件都有獨立的碰撞體組件 , 它必須和上期說到的剛體一起添加到物體身上 , 物體才可以發生碰撞 , 兩個沒有添加碰撞體的遊戲物體在相對運動時,會穿過彼此 .如視頻顯示 : cube1(紅色 ,有剛體 沒有碰撞體) , cube2(綠色 , 有剛體 有碰撞體) , 兩個物體會互相穿過 .
  • 天才之為責任:Unity CEO談論Unity 4.0遊戲引擎
    Unity4.0是Unity引擎自2010年以來的首次主版本更新,它是具備最新科技和技術的新一代開發工具,它支持多平臺的遊戲研發,Mac OSX App、Windows Executable、Web Browsers (使用Unity網絡播放器)、iOS、Android、Wii、PS3和Xbox 360等所有主流平臺遊戲都可以通過Unity 4.0來研發和發布。
  • (含引擎/書籍資源)
    如今的90後、00後誰不在閒暇之餘開黑兩把,都覺得自己的休息時間「不完整」。遊戲產業的布局越來越廣闊,不僅局限於娛樂,遊戲孵化、功能遊戲、跨界應用(將電子遊戲的元素、涉及、技術和架構創興應用於醫療、教育、軍事、企業培訓、社會管理等垂直領域)這些將逐一實現。
  • unity業餘愛好者說一下
    unity業餘愛好者說一下,這幾天傳的關於《太吾繪卷》代碼的事幾乎都是無中生有的事...一群用.net和vs做工程的人談論第三方引擎做的遊戲...真是雞同鴨講。太吾繪卷現在針對幾個常見誤會說一下1.只有一個main (x)unity的腳本都是依附於各個精靈的,沒有main,只有update2.沒有注釋(x)你反編譯出來的代碼有注釋
  • [專欄精選]Unity剛體詳解
    面試官問了很多遊戲開發、Unity引擎的問題,小新就下定決心,一定要好好學習一下遊戲開發,特別是Unity引擎。小新找到了自己的師兄大智,這位師兄有8年Unity開發經驗,想向師兄請教一下學習的方向。沒想到師兄特別熱情,是一個技術布道者,喜歡研究傳播技術,從此小新跟著大智開啟了他的Unity學習之旅。大智告訴小新,叫我「大智」就好了,以後不要叫師兄了哈。
  • Unity 5引擎正式發布,推出個人免費版本
    今天凌晨,Unity公司在2015 GDC大會上正式發布了其最新一代引擎Unity 5。新版本Unity 5引擎推出了全新的個人免費版,還引入了多項幫助開發者進行遊戲開發的新工具。 3月4日凌晨,在美國舊金山舉辦的2015 GDC大會上,Unity公司發布了他們的最新一代引擎,Unity 5。
  • Unity項目開發過程中常見的問題,你遇到過嗎?
    事實上Unity引擎是一個很靈活的引擎,根據團隊開發遊戲類型的不同,對人員的要求也有差異,所以不能一概而論。但是,一些在Unity項目開發過程中常常會遇到的問題還是可以總結一下的。下面我就來聊聊實際工作中,一個項目組可能會遇到的問題吧。