影音先锋男人资源站_国产婷婷综合丁香亚洲欧洲_白狐视频传媒污软件下载_趁女同学午休揉她的屁股

ECS的核心概念,關(guān)于ecs使用規(guī)范正確的是-ESG跨境

ECS的核心概念,關(guān)于ecs使用規(guī)范正確的是

來源網(wǎng)絡(luò)
來源網(wǎng)絡(luò)
2022-04-28
點贊icon 0
查看icon 808

ECS的核心概念,關(guān)于ecs使用規(guī)范正確的是ECS的核心概念ECS架構(gòu)的核心是數(shù)據(jù),這也是Unity將這項技術(shù)命名為stack DOTS的原因。系統(tǒng)讀取實體上方組件的數(shù)據(jù)流并處理數(shù)據(jù)。在這里,實體實際上更像一個索引,它不包含任何數(shù)據(jù)或邏輯。EC由三部分組成:實體、組件和行為。見下圖:在此圖中,系統(tǒng)讀取多個實體的平移和旋......

ECS的核心概念,關(guān)于ecs使用規(guī)范正確的是




ECS的核心概念

ECS架構(gòu)的核心是數(shù)據(jù),這也是Unity將這項技術(shù)命名為stack DOTS的原因。系統(tǒng)讀取實體上方組件的數(shù)據(jù)流并處理數(shù)據(jù)。在這里,實體實際上更像一個索引,它不包含任何數(shù)據(jù)或邏輯。

EC由三部分組成:實體、組件和行為。見下圖:

在此圖中,系統(tǒng)讀取多個實體的平移和旋轉(zhuǎn)組件,然后在計算和處理后將結(jié)果更新到LocalToWorld組件。

如圖所示,實體A和B仍然有渲染器組件,但C沒有。但是,這不會影響系統(tǒng)的計算邏輯,因為這個系統(tǒng)不關(guān)心渲染器組件。

也可以寫一個需要處理渲染器組件的系統(tǒng),讓系統(tǒng)忽略實體c,也可以寫一個排除包含渲染器組件的實體的系統(tǒng),讓系統(tǒng)忽略實體A和實體b。

以下是ECS中一些重要的核心概念:

原型原型

多個組件的組合稱為原型。

例如,3D對象可以包含用于變換的組件,包括移動、旋轉(zhuǎn)和渲染。每個3D對象對應(yīng)一個實體,但它們都有相同的組件,因此ECS會將它們歸類為一種原型。

上圖中,實體A和實體B的原型都是M,實體C的原型是n。

您還可以通過在運行時添加或刪除組件來更改實體的原型。例如,如果實體B的渲染器組件被移除,則實體B的原型將變成n。

內(nèi)存塊

為什么先說原型的概念?因為實體的原型是什么決定了ECS將實體的組件即數(shù)據(jù)存儲在哪里。Ec以塊為單位分配內(nèi)存,每個塊由一個原型塊對象表示。

一個塊只包含一個原型,原型可以包含多個實體的數(shù)據(jù)。如果一個塊的內(nèi)存已滿,ECS將分配一個新的塊來存儲新實體的組件。

如果修改了實體的組件,就相當(dāng)于修改了實體的原型。此時,ECS會將實體的組件數(shù)據(jù)移動到另一個塊。

原型和內(nèi)存塊的關(guān)系是一對多的關(guān)系。這意味著,如果您想要查詢一組給定組件類型的所有實體,您只需要在這些原型中進行搜索。這將比在所有實體中搜索高效得多。

ECS在存儲實體到內(nèi)存塊中沒有特殊的順序。當(dāng)一個實體被創(chuàng)建或者一個實體的原型發(fā)生變化時,ECS會把它放到對應(yīng)原型中第一個有空間的內(nèi)存塊中。塊中的數(shù)據(jù)將緊密排列。如果要將一個實體移出當(dāng)前原型的內(nèi)存塊,此時會有一個空位,ECS會將這個內(nèi)存塊的最后一個實體數(shù)據(jù)移到這個空位上。

注意:原型中共享組件的數(shù)據(jù)(后面會詳細描述)也會影響實體將存儲在哪個內(nèi)存塊中。同一內(nèi)存塊中所有實體的共享組件中的數(shù)據(jù)值是相同的。如果修改共享組件中的數(shù)據(jù),實體將被移動到另一個塊中,這有點類似于修改實體的原型。

將共享組件的實體劃分到一個內(nèi)存塊中將提高處理它們的速度。例如,Hybird Renderer定義了RenderMesh組件來實現(xiàn)這一目標(biāo)。

實體查詢

系統(tǒng)在什么基礎(chǔ)上決定處理哪些實體?這將使用稱為實體查詢的東西。實體查詢首先需要一些組件類型,然后根據(jù)你傳入的組件類型組合,在包含這些組件的原型中查詢符合要求的實體。查詢時可以指定以下三種類型:

All必須包含所有組件類型。

任何必須在任何中包含至少一個組件類型。

None中不能包含任何組件類型。

實體查詢的結(jié)果將返回滿足查詢要求的所有內(nèi)存塊。您可以使用IJobChunk遍歷所有組件。(IJobChunk后面會講到。)

作業(yè)作業(yè)

如前所述,ECS只有在與Job一起使用時才能發(fā)揮多線程的威力。ECS提供了包含實體的SystemBase類。ForEach方法,還包含IJobChunk的Schedule()和ScheduleParallel()方法,可以處理子線程中的數(shù)據(jù)。實體。ForEach是最簡單的方法,只需幾行代碼就可以實現(xiàn)。IJobChunk可以用來處理更復(fù)雜的情況。

ECS將根據(jù)系統(tǒng)的順序在主線程中調(diào)度作業(yè)。當(dāng)調(diào)度作業(yè)時,ECS將跟蹤哪些作業(yè)正在讀取和寫入哪些組件。需要讀權(quán)限的作業(yè)需要等到上一個具有寫權(quán)限的作業(yè)完成執(zhí)行,反之亦然。作業(yè)調(diào)度器將使用作業(yè)相關(guān)性來決定哪些作業(yè)可以并行,哪些作業(yè)必須串行。

系統(tǒng)的組織

歐共體通過世界和集團組織系統(tǒng)。默認情況下,ECS將使用一些預(yù)定義的組創(chuàng)建一個默認世界。它將找到項目中的所有系統(tǒng),實例化它們,并將它們添加到預(yù)定義的組中。

您可以在同一組中指定系統(tǒng)更新的執(zhí)行順序。組也是一個系統(tǒng),所以您可以將一個組添加到另一個組中。如果不指定順序,系統(tǒng)的執(zhí)行順序?qū)⑹遣淮_定的,它不會遵循它們被創(chuàng)建的順序。但是,同一組中的所有系統(tǒng)將在下一組中的系統(tǒng)之前執(zhí)行。

系統(tǒng)的更新是在主線程中執(zhí)行的,但是您可以使用Job將工作分配給子線程。

ECS世界的視覺創(chuàng)作(創(chuàng)作)

在Unity中,沒有辦法直接在視覺上創(chuàng)建DOTS世界。不過可以先用GameOjbect和MonoBehaviour創(chuàng)建,然后通過轉(zhuǎn)換系統(tǒng)把GameObject轉(zhuǎn)換成實體和組件。我們以后再談這個。

來源:Unity官方平臺

原文:https://mp.weixin.qq.com/s/Tvtqz51Np7vWeYwKcQtHdQ


文章推薦
Cloudflare是針對站點安全性和性能的終極解決方案,國內(nèi)使用cloudflare有效果嗎
Facebook新號養(yǎng)號細節(jié)一覽!,facebook新號養(yǎng)號怎么用
F5 CIO直通車  從多云到跨云
Facebook商務(wù)管理平臺BM創(chuàng)建和設(shè)置,facebook商務(wù)管理平臺怎么設(shè)置


特別聲明:以上文章內(nèi)容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。

搜索 放大鏡
韓國平臺交流群
加入
韓國平臺交流群
掃碼進群
歐洲多平臺交流群
加入
歐洲多平臺交流群
掃碼進群
美國賣家交流群
加入
美國賣家交流群
掃碼進群
ESG跨境專屬福利分享群
加入
ESG跨境專屬福利分享群
掃碼進群
拉美電商交流群
加入
拉美電商交流群
掃碼進群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進群
拉美電商交流群
加入
拉美電商交流群
掃碼進群
ESG獨家招商-PHH GROUP賣家交流群
加入
ESG獨家招商-PHH GROUP賣家交流群
掃碼進群
2025跨境電商營銷日歷
《2024年全球消費趨勢白皮書——美國篇》
《2024TikTok出海達人營銷白皮書》
《Coupang自注冊指南》
《eMAG知識百科》
《TikTok官方運營干貨合集》
《韓國節(jié)日營銷指南》
《開店大全-全球合集》
《TikTok綜合運營手冊》
《TikTok短視頻運營手冊》
通過ESG入駐平臺,您將解鎖
綠色通道,更高的入駐成功率
專業(yè)1v1客戶經(jīng)理服務(wù)
運營實操指導(dǎo)
運營提效資源福利
平臺官方專屬優(yōu)惠

立即登記,定期獲得更多資訊

訂閱
聯(lián)系顧問

平臺顧問

平臺顧問 平臺顧問

微信掃一掃
馬上聯(lián)系在線顧問

icon icon

小程序

微信小程序

ESG跨境小程序
手機入駐更便捷

icon icon

返回頂部