ECS Entitas分析(三)___Component

Component介紹

Component是ECS框架中重要組成部分之一的組件斯够。在Entitas中它是一個接口類,我們需要實現(xiàn)它的接口來保存我們需要的數(shù)據(jù)江兢。同時Entitas還給我們提供各種特殊的標簽屬性昨忆,通過生成代碼為我們生成具有各種特殊功能的組件。例如:[Attributes]確保最多存在一個具有此組件的實體杉允,類似單例邑贴;[Event]類似事件組件席里,當這個組件改變了可以回調(diào)到對應的注冊方法。還有很多其它實用的屬性拢驾,我們可以在這里查看奖磁。

一、IComponent接口

IComponent是一個接口繁疤,Entitas中所有我們自定義的Component都必須繼承它咖为。

public interface IComponent {

}
二、ComponentsLookup

正如它的命名稠腊,這個類就是用來定義和查找Context中Component的相關信息躁染。這個類是代碼生成器自動生成的,無須我們手動編寫架忌。它主要為我們自定義的Component定義了一個int類型的索引吞彤。在其他地方我們都是通過這個索引來關聯(lián)對應的Componet,例如:作為Entity中保存的組件數(shù)組的下標叹放;Matcher中篩選數(shù)組的下標等饰恕。這樣,所有引用Component的地方都可以使用數(shù)組下標訪問井仰,提高效率埋嵌。

public static class GameComponentsLookup {
    //定義組件索引
    public const int Asset = 0;
    public const int Destroy = 1;
    public const int Log = 2;
    public const int Position = 3;
    
    //組件的總個數(shù),初始化Entity是用到
    public const int TotalComponents = 4;
    
    public static readonly string[] componentNames = {
        "Asset",       
        "Destroy",    
        "Log",
        "Position"
    };
    //所有組件類型的數(shù)組
    public static readonly System.Type[] componentTypes = {
        typeof(AssetComponent),
        typeof(DestroyComponent),
        typeof(LogComponent),
        typeof(PositionComponent)
    };
}
三糕档、總結(jié)

Component是Entitas中的數(shù)據(jù)類莉恼,它通過組合添加到Entity上來實現(xiàn)各種各樣不同含義的對象拌喉。Entitas為我們提供了各種特殊的屬性標簽速那,通過生成代碼,表現(xiàn)出不同特征的組件尿背,例如:單例端仰,事件,鍵值對等田藐。同時還會自動為我們所有的Component生成對應的索引荔烧,方便我們在其他地方方便快速的訪問。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末汽久,一起剝皮案震驚了整個濱河市鹤竭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌景醇,老刑警劉巖臀稚,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異三痰,居然都是意外死亡吧寺,警方通過查閱死者的電腦和手機窜管,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稚机,“玉大人幕帆,你說我怎么就攤上這事±堤酰” “怎么了失乾?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纬乍。 經(jīng)常有香客問我仗扬,道長,這世上最難降的妖魔是什么蕾额? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任早芭,我火速辦了婚禮,結(jié)果婚禮上诅蝶,老公的妹妹穿的比我還像新娘退个。我一直安慰自己,他們只是感情好调炬,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布语盈。 她就那樣靜靜地躺著,像睡著了一般缰泡。 火紅的嫁衣襯著肌膚如雪刀荒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天棘钞,我揣著相機與錄音缠借,去河邊找鬼。 笑死宜猜,一個胖子當著我的面吹牛泼返,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姨拥,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼绅喉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了叫乌?” 一聲冷哼從身側(cè)響起柴罐,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎憨奸,沒想到半個月后革屠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年屠阻,在試婚紗的時候發(fā)現(xiàn)自己被綠了红省。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出袜炕,到底是詐尸還是另有隱情,我是刑警寧澤痕寓,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蝇闭,受9級特大地震影響呻率,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呻引,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一礼仗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逻悠,春花似錦元践、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至饥伊,卻和暖如春象浑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背琅豆。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工愉豺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人趋距。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓粒氧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親节腐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355