我開發出了類似硬幣推土機的遊戲。爲了硬幣的順利移動,我爲每枚硬幣添加了一種物理材料,但是在完成之後,我的遊戲速度很慢。有沒有其他的選擇呢,或者如何在不使用物理材料的情況下讓硬幣運動平滑?那麼任何人都可以幫助我擺脫這種情況。物理材料放慢遊戲速度
回答
所以問題是物理計算。
不要使用圖形的網格作爲碰撞器來計算硬幣的移動,特別是當網格上有很多三角形和垂直點時。你應該選擇一個更簡單的對撞機,也許像棱鏡一樣的行爲類似於硬幣,並減少大量的計算。您可以使用從3D軟件導出的另一個簡單的棱鏡網格,並使用該網格創建一個新的遊戲對象。從原始硬幣中刪除與物理相關的所有內容(剛體,對撞機和物理材料)。然後將沒有物理的可見硬幣和新添加的對象(處理所有物理)組織到同一父級。網狀對撞機中較少的三角形意味着較少的計算。儘可能少地控制對撞機網格三角形。我建議使用盒子對撞機作爲起點來檢查性能是否提高。
另一件可能的幫助是改變物理設置中的Solver Iteration Count
。您可以嘗試將其更改爲較低的值(對於硬幣遊戲,可能是3或4就足夠了)。
將幀率限制爲較低的值可以提供幫助,但這是您應該去的最後一種方式。
你真棒。感謝您的答覆。在Solver Iteration Count值更改爲2後,遊戲變得更加流暢,並且我已經檢查了Box Collider,並且Box collider遊戲正在運行。所以問題是網格對撞機。你可以請求給我一些關於「從3D軟件導出的棱鏡網格」的更多信息,因爲我是unity3d的新手。 – Yashesh
如果你有一個3D設計師,你可以讓他/她做一個棱鏡(三維多邊形)像[this](http://en.wikipedia.org/wiki/Prism_(geometry))。也許8條邊或16條邊可以很好地描述一枚硬幣。然後,您可以使用棱鏡網格作爲對撞機網格而不是箱體對撞機(以改善現實)。如果你沒有3d設計師,你必須自己創建一個。其實這對於DIY來說足夠簡單。 – onevcat
感謝您的幫助。我會執行這個。 – Yashesh
您可以延遲添加物理硬幣。我的意思是當硬幣接近下降時加入物理。當你將硬幣從場景中移出時,你還需要摧毀每個硬幣體。如果你只刪除精靈,那麼場景中會有太多的物體。
當我倒下時,我已經毀了硬幣。 – Yashesh
那麼你可能不得不優化你的代碼... –
- 1. 模型放慢了遊戲速度 - opengl
- 2. 鼠標移動減慢遊戲速度
- 3. Admob減慢我的遊戲速度 - LIBGDX
- 4. 遊戲物體擊中保持有彈性的材料
- 5. 2d遊戲物理?
- 6. 2d遊戲物理基於速度緩解輸入/輸出
- 7. Android的帆布遊戲,遊戲速度
- 8. 遊戲速度問題
- 9. Slick2D遊戲速度變化
- 10. libGDX:遊戲通用速度
- 11. Android加速度計遊戲
- 12. 遊戲數學(速度)
- 13. TDD和遊戲物理
- 14. SpriteKit遊戲物理滯後
- 15. 液體物理遊戲
- 16. 物理OO遊戲編程
- 17. LibGdx弓箭遊戲物理
- 18. N遊戲角色物理
- 19. 2D平臺遊戲物理
- 20. 這是遊戲物理?
- 21. QtSDK:遊戲速度太慢嗎?其他建議?
- 22. 當射擊項目符號時SFML遊戲速度減慢
- 23. 其他進程調用GC會減慢我的遊戲速度
- 24. 添加背景圖像時Java遊戲速度變慢
- 25. 在Flash Pro中測試時遊戲運行速度很慢CC
- 26. 創造敵人,減慢遊戲速度Cocos2d
- 27. Libgdx遊戲重啓時速度越來越慢
- 28. 我的Libgdx遊戲整合速度慢Admob
- 29. 如何增加物體的下落速度在2D遊戲
- 30. 物理在視頻遊戲中,在角加速度上應用扭矩
我在使用Unity3D製作硬幣推土機遊戲方面有一些經驗。將物理材質應用於gameObject幾乎不成問題。物理材料比物理計算的一些數學參數更重要。這可能是導致問題的對撞機和剛體。請打開分析器並查看哪些部分最重(如果您使用的是專業版許可證)。我想你應該使用一些較輕的對撞機和較少的計算 – onevcat
硬幣是從3D工作室導入的,它是obj的擴展。所以,而不是對撞機,我可以嗎? – Yashesh
當推土機推到硬幣時,我已經看到探查器的物理效率是94%。 – Yashesh