在游戲開發中會使用物件池對一些物件進行管理,這些物件池在某些情況下需要被銷毀么,比如說在切換場景時
uj5u.com熱心網友回復:
方案兩種:1、統一抽象一層父類,父類中在OnDestroy里通知物件池銷毀當前物件(需要注意修飾符為保護的,不然子類要是也實作了這個方法。沒呼叫父類中的方法。無效)
2、物件池假設你是用list實作,在取出元素時。判斷元素是否為空。為空直接取得下一個。
uj5u.com熱心網友回復:
在unity中, 每個物件的生成和銷毀都需要時間的,物件池的目的就是 減少上述的性能的損耗。所以說放在池子里的大部分都是一些需要預先加載的prefab,當你認為此場景中長時間不需要池子中的物件時,就清空池子,減少記憶體占用。uj5u.com熱心網友回復:
物件池會在一定時間不用的物件自動銷毀,uj5u.com熱心網友回復:
簡單的物件池實作,可以了解下https://blog.csdn.net/l773575310/article/details/71601460?locationNum=15&fps=1
至于是否銷毀,看你物件池中的東西是否在下一場景復用。
如果要復用,物件池可以做成單例,使用 DontDestroyOnLoad,不讓它銷毀
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/51918.html
標籤:Unity3D
上一篇:求一個bin格式的3D模型
下一篇:unity游戲原始碼怎么使用
