无码色偷偷亚洲国内自拍_国产男女性潮高清免费网站_69SEX久久精品国产麻豆_日本高清在线一区二区三区

千鋒教育(yu)-做有情懷、有良心(xin)、有品質(zhi)的職業教育(yu)機構 

當前位置:首頁  >  IT問答庫  >  unity基礎知識

Unity中的對象池技術

發布:qyf 2022-09-29 13:46

Unity中的對象池技術

推薦答案

  1.對象池簡單定義

  同學您好,對(dui)象(xiang)(xiang)池是(shi)一種Unity經常(chang)用到(dao)的(de)內存管理服務,針對(dui)需要經常(chang)生成(cheng)消(xiao)失的(de)對(dui)象(xiang)(xiang),作用在(zai)于可以減(jian)少創建每個對(dui)象(xiang)(xiang)的(de)系統(tong)開銷(xiao)。我們在(zai)對(dui)象(xiang)(xiang)需要消(xiao)失的(de)時候(hou)不Destroy而(er)是(shi)SetActive(false),然后放入池子中(zhong)(Queue),當需要再次顯示一個新的(de)對(dui)象(xiang)(xiang)的(de)時候(hou),先去池子中(zhong)看有(you)沒有(you)隱(yin)藏的(de)對(dui)象(xiang)(xiang),有(you)就取出SetActive(true),若池子里沒有(you)可用的(de)則再Instantiate。

  2.使用對象池的原因

  在Unity游戲開發的(de)(de)過程中經常(chang)會(hui)(hui)創建一(yi)(yi)(yi)(yi)些新(xin)(xin)的(de)(de)對(dui)(dui)象,如果數量(liang)較少還可(ke)以(yi)接受,如果創建的(de)(de)新(xin)(xin)對(dui)(dui)象數量(liang)龐大(da)(da),那么(me)對(dui)(dui)內(nei)存而(er)言是(shi)(shi)一(yi)(yi)(yi)(yi)個極大(da)(da)的(de)(de)隱患。例如射擊游戲當中,每發射一(yi)(yi)(yi)(yi)顆子(zi)(zi)彈(dan),都要創建一(yi)(yi)(yi)(yi)個新(xin)(xin)的(de)(de)子(zi)(zi)彈(dan)對(dui)(dui)象,那么(me)子(zi)(zi)彈(dan)是(shi)(shi)數量(liang)龐大(da)(da),可(ke)想而(er)知一(yi)(yi)(yi)(yi)場游戲當中會(hui)(hui)創建多少這樣的(de)(de)新(xin)(xin)對(dui)(dui)象,那么(me)如果這些子(zi)(zi)彈(dan)創建之(zhi)后(hou)都對(dui)(dui)游戲起(qi)著關鍵且持續性的(de)(de)作用也(ye)(ye)無可(ke)厚非(fei),問題(ti)是(shi)(shi)子(zi)(zi)彈(dan)發射完成之(zhi)后(hou),幾秒之(zhi)后(hou)就(jiu)不再擁有任(ren)何的(de)(de)意義,一(yi)(yi)(yi)(yi)般會(hui)(hui)將(jiang)它自動的(de)(de)隱藏,也(ye)(ye)就(jiu)是(shi)(shi)我們(men)所說的(de)(de)SetActive(false),因此(ci)大(da)(da)量(liang)的(de)(de)非(fei)活躍對(dui)(dui)象出現(xian)在游戲場景當中。

  由于(yu)對(dui)象(xiang)池中的(de)對(dui)象(xiang)只(zhi)是(shi)SetActive(false)了,并(bing)(bing)非真(zhen)正銷毀了,所(suo)以(yi)一般運用(yong)于(yu)游戲中經常用(yong)到或需大量生成(cheng)的(de)物體(ti)。并(bing)(bing)不能將所(suo)有對(dui)象(xiang)都用(yong)此技術,如若不然便是(shi)得不償失了。

  3.創建并使用一個簡單對象池

  首先(xian)我(wo)們先(xian)生成(cheng)一個(ge)對(dui)象(xiang)池的(de)class,里面的(de)內容就很簡單,首先(xian)有(you)一個(ge)Queue用來存放(fang)池子(zi)中的(de)對(dui)象(xiang),然后實(shi)現(xian)兩個(ge)方法,一個(ge)取(qu)對(dui)象(xiang),一個(ge)放(fang)對(dui)象(xiang)。取(qu)對(dui)象(xiang)的(de)時候,若池子(zi)中有(you)可(ke)用對(dui)象(xiang)則取(qu)出一個(ge),若沒有(you)則Instantiate一個(ge);放(fang)對(dui)象(xiang)即將(jiang)對(dui)象(xiang)SetActive(false)并且放(fang)入池子(zi)中。

最新問答資訊

01 unity用什么編程語言?unity學習難度大嗎

學習 unity 語言
6020 人關注

02 python容易學嗎?學好python有什么好處?

學習 python 工作 培訓
5389 人關注

03 html是什么語言?html學習難嗎?

學習 html 語言 可以
5062 人關注

04 c語言難學嗎?c語言學好要多久?

語言 技術 學習
4733 人關注

06 學好平面設計要多久?報速成班靠譜嗎?

平面 設計 學習 時間
4238 人關注

技術干貨

更多 >

相關問題

unity用什(shen)么編程語(yu)言?unity學習難(nan)度大嗎

目前各大領域對unity這一編程語言有著具體的要求(qiu),會unity可(ke)輕松...

Unity中(zhong)如何使用代碼切(qie)換場(chang)景

同學你好,Unity中如何(he)使用(yong)代碼切換場景(jing)?在(zai)Unity中肯定會用(yong)到切...

UnityHub中提示(shi)許可證過(guo)期了(le)怎么(me)辦?

同學您(nin)好,在使用Unity的過程中,我們經常會遇到(dao)一(yi)個提示:您(nin)沒(mei)...

Unity中使用代碼激活/取消激活某個(ge)游戲對(dui)象的(de)方法

同學您好,在Unity中(zhong)取消激(ji)活某(mou)個游戲物體(ti)非常簡單,只(zhi)需(xu)要在屬...

Unity四(si)元(yuan)數與歐拉角之間轉換

normalized;將方向向量轉換為四元數Quaternion rotation =Quater...

Unity中(zhong)的對象池技(ji)術

同學您好,對象池是一(yi)種(zhong)Unity經常用(yong)到的內存管理服務,針對需要(yao)...

測一測
你知道多少IT梗