Unity組件

在學習C++的時候,對於面對對象有點了解。然後也使用過一段時間的Unity,用起來還是覺得,怎麼這麼好用。耦合性極低。當時不知道這是基於組件編程。所以現在來學習下基於組件的知識,並比較下基於組件和基於對象的區別。
一、面對對象
在學校,老師講授的C++,比較核心的就是“面對對象”的思想。好比編寫一個遊戲,先考慮好該遊戲有哪些對象,比如:玩家、敵人、道具、戰鬥關卡、等
  敵人和玩家都具有一些相同的屬性:血量、攻擊力、位置等。但是玩家除此之外還擁有金錢、裝備倉庫、技能。根據技能的不同,可以分爲近戰的戰士 和 遠程攻擊的 法師。 玩家可以用 錢來購買裝備。裝備包含該裝備售賣的價格和裝備信息。 遊戲關卡類控制戰鬥過程中關卡的切換。

二、組件編程
  在傳統的結構設計中一般會使用“派生”來描述對象之間的關係。子類通過派生父類,來獲得父類的功能。在設計遊戲對象時,會根據遊戲本身的需要而爲遊戲對象添加各種功能支持,比如渲染,碰撞,剛體,粒子系統等等。這些通用功能爲了能夠爲各種派生類提供服務,都必須實現到基類中。這樣就導致了遊戲對象基類變得非常龐大臃腫,即難使用,又難維護。 ”基於組件“的對象模型就是把所有需要提供給遊戲對象的基礎功能都獨立成單獨的”組件模塊“(Component),一個具體的遊戲對象可以將它需要的功能模塊組合到一起使用。所有”功能“不再是父類中的接口,而變成子對象實例,爲遊戲對象提供服務。這樣既保證了功能代碼的可重用性,又增加了整個對象體系的模塊化和靈活度。
  我的理解:Unity把最常使用、最基本的功能以一個個組件的形式提供給開發者。比如位置、音效、渲染、碰撞等。相當於開發者建造一個房子的話,Unity直接提供了磚頭、水泥、木頭、門窗這些基本的物件。開發者可以像搭積木一樣構造出一個個城堡。開發者充當的角色就是“膠水”,將一個個獨立模塊通過一定的邏輯,粘連起來,最終達到自己的項目預期目的。

三、Unity有哪些組件
Unity3D = Gameobject + Components;Unity核心思想:一切皆組件;
Transform:物體的空間座標、縮放、旋轉信息
燈光:點光源、方向光源、
相機
地形
粒子系統
屏幕特效
網格
物理引擎:重力、碰撞、剛體、射線
音效、視頻
動畫
AI:尋路
更多unity2018的功能介紹請到paws3d學習中心查找。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章