關於UnityECS框架的學習

2021-10-03 07:00:17 字數 1308 閱讀 2810

ecs**框架 最早是暴雪《守望先鋒》中採用的遊戲框架

ecs是entitycomponensystemt實體、元件、系統的縮寫,在unity中將gameobject轉化成實體entity,entities用乙個struct陣列儲存,system控制entity的邏輯其onupdate方法相當於gameobject的update,component儲存entity的資料

ecs是一種新的程式設計思想dod的體現:dod(date original design)面向資料設計

優點:實現資料與邏輯的分離,低耦合、易擴充套件,通過jobsystem並行執行大量物體的邏輯行為

unity於2023年就提出了乙個概念dots(data-oriented tech stack面向資料技術棧

其包含三個部分:

1.ecs

2.job system :cpu多核程式設計的應用

3.burst compiler : 是unity開發的快速編譯器目標是使c#**不徑過中間**直接編譯成機器**

配置ecs:

在unity(2019.3)中要使用ecs要先在packagemanger中匯入hybird renderer包(包含了dots)

關於component:儲存entities中的資料

using unity.entities;

[generateauthorcomponent]

public struct *** :icomponentdata

struct可以將離散分布的資料變為一塊線性分布的塊狀資料

關於system:實現entities中的邏輯

using unity.entities;

using unity.jobs;

[alwayssynchronizesystem]

//繼承jobcomponentsystem (比繼承componentsystem好)

public class ***system : jobcomponentsystem

).run();//在主線程中執行

return default;

}}

[alwayssynchronizesystem]儲存jobsystem可以並行處理

ref是需要改變的引數,in是唯讀引數

關於entity:

提供converttoentities元件給gameobject新增轉化成entity,可以在gameobject的工作流上對entity進行編輯,保持工作習慣

關於sitemesh框架的學習

sitemesh是乙個網頁布局和修飾的框架,利用它可以將網頁的內容和頁面結構分離,以達到頁面結構共享的目的。sitemesh執行環境需要 servlet,jdk sitemesh定義了乙個過濾器,然後把頁面都加上統一的頭部和底部。需要先在web inf lib下引入sitemesh的jar包 過濾器...

關於框架的一些學習筆記

服務端n層架構體系中 mvc 今天才知道原來傳統的mvc中v是可以直接與m互動,m也做了些弱業務處理 mvp 所以至今為止公司用的都是mvp,就是m和v是完全分離的,少了p就相當於兩個孤島,mv互動必須通過p 在服務端n層架構體系中,mvc,mvp等架構思想僅是運用在表示層,而移動端的是應用在整個專...

關於Darkstar遊戲框架學習心得

最近看了一些關於,darkstar遊戲框架的文章,在此進行一下總結吧,也算是對學習成果的展示。相信人們平時一般都會玩遊戲,尤其是對於一些大型的mmo遊戲有些人更是情有獨鍾。那麼在設計這些遊戲的過程中都要考慮那些問題,這些問題又是如何解決的呢?1.遊戲設計面臨問題 在大型遊戲設計過程中出了要考慮到遊戲...