日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity最佳实践-物理计算

發布時間:2023/12/29 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity最佳实践-物理计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Unity最佳實踐-物理計算

英文原文:https://unity3d.com/cn/learn/tutorials/topics/physics/physics-best-practices

層次(Layer)和層次碰撞矩陣(Layer Collision Matrix)

所有新建的GameObject默認處于 Default 層,該層中的所有物體都可以相互碰撞,這樣會比較消耗性能。
應該為不同類型的GameObject設置不同的層,來設定哪些GameObject之間可以發生碰撞。
新添加的層默認設置為可與所以已存在的層發生碰撞,要在碰撞矩陣中去掉不必要的碰撞關系,以減少碰撞監聽和碰撞事件。

碰撞矩陣界面位于 Edit-Project Settings-Physics : Layer Collision Matrix

射線(Raycasts)

射線比較消耗性能,其性能開銷與射線的長度和場景中的碰撞器(Collider)的類型關系密切。
下面列出一些優化射線性能的提示:

  • 盡量減少射線的數量。
  • 射線的長度夠用即可。射線越長,引擎要檢測的對象就越多。
  • 不要在 FixedUpdate() 中使用射線,也盡量不要在 Update() 中使用射線。
  • 注意射線所檢測的碰撞器的類型,MeshCollider 的射線處理性能開銷非常大。
    • 對于具有復雜網格的物體,一個比較好的解決方案是為其創建多個帶有基礎碰撞器的子對象,然后調整子對象碰撞器的形狀到與父物體相近。
    • 若確實需要使用MeshCollider,盡量將其設置為 convex 。
  • 明確射線需要與哪些層發生碰撞,盡量在射線方法中使用層次遮罩。
    • 射線方法中的 layerMask 參數用于設置層次遮罩,它是位掩碼而不是層id。
    • 要設置射線只與第10層(層id為10)的物體發生碰撞,layerMask參數應該為 1<<10。
    • 要設置射線不與第10層的物體發生碰撞,layerMask參數應該為 ~(1<<10),不能省略括號。
    • 可以通過 LayerMask.NameToLayer("LayerName") 方法獲取層的id。
    • 示例1: Physics.Raycast(ray, out hit, 1 << 10)。
    • 示例2: Physics.Raycast(ray, out hit, ~(1 << 10))。

剛體(Rigidbody)

剛體是在對象間進行物理交互所必須的組件,即使是只將碰撞器作為觸發器(Tigger),也應該為對象添加剛體組件,這樣可以確保 OnTrigger 事件正常工作。
當多個對象具有層級關系且子對象具有碰撞器時,只需在最外層的父對象上添加一個剛體即可,無需為每個子對象添加剛體。
不帶有剛體的碰撞器對象會被引擎認為是 靜態碰撞器(Static Collider)。要避免移動靜態碰撞器對象,這一操作開銷很大,因為這會導致引擎重新計算整個場景的物理數據。
Profile 窗口的 CPU Profile 欄會在移動靜態碰撞器時輸出警告(warning)。

這里我在Unity 5.6.3和Unity 2018.1.0中做了下測試,感覺反而是加了剛體之后每幀耗時增加了,Profile中也沒看到警告,不知道是Unity內部做了升級還是我哪里沒設置好,如果有人懂這里的改動,希望能給講解一下!

Fixed時間步長(Fixed Timestep)

在時間管理器(Time Manager)中調整 Fixed Timestep 會直接影響到 FixedUpdate() 和 物理計算 的更新頻率,通過更改該值來在物理計算精度和CPU消耗中尋求平衡。時間管理器界面位于 Edit-Project Settings-Time : Time Manager

總結

以上是生活随笔為你收集整理的Unity最佳实践-物理计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。