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

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

來源網絡
來源網絡
2022-04-28
點贊icon 0
查看icon 867

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

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




ECS的核心概念

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

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

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

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

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

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

原型原型

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

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

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

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

內存塊

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

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

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

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

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

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

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

實體查詢

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

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

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

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

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

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

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

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

系統(tǒng)的組織

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

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

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

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

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

來源:Unity官方平臺

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


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


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

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

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

訂閱
聯(lián)系顧問

平臺顧問

平臺顧問 平臺顧問

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

icon icon

小程序

微信小程序

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

icon icon

返回頂部

国第一产在线无码精品区,aaa无码视频在线观看,久久强奷乱码老熟女,国产一级aⅴ无码毛片