Unity元件
在學習C++的時候,對於面對物件有點了解。然後也使用過一段時間的Unity,用起來還是覺得,怎麼這麼好用。耦合性極低。當時不知道這是基於元件程式設計。所以現在來學習下基於元件的知識,並比較下基於元件和基於物件的區別。
一、面對物件
在學校,老師講授的C++,比較核心的就是“面對物件”的思想。好比編寫一個遊戲,先考慮好該遊戲有哪些物件,比如:玩家、敵人、道具、戰鬥關卡、等
敵人和玩家都具有一些相同的屬性:血量、攻擊力、位置等。但是玩家除此之外還擁有金錢、裝備倉庫、技能。根據技能的不同,可以分為近戰的戰士 和 遠端攻擊的 法師。 玩家可以用 錢來購買裝備。裝備包含該裝備售賣的價格和裝備資訊。 遊戲關卡類控制戰鬥過程中關卡的切換。
二、元件程式設計
在傳統的結構設計中一般會使用“派生”來描述物件之間的關係。子類通過派生父類,來獲得父類的功能。在設計遊戲物件時,會根據遊戲本身的需要而為遊戲物件新增各種功能支援,比如渲染,碰撞,剛體,粒子系統等等。這些通用功能為了能夠為各種派生類提供服務,都必須實現到基類中。這樣就導致了遊戲物件基類變得非常龐大臃腫,即難使用,又難維護。 ”基於元件“的物件模型就是把所有需要提供給遊戲物件的基礎功能都獨立成單獨的”元件模組“(Component),一個具體的遊戲物件可以將它需要的功能模組組合到一起使用。所有”功能“不再是父類中的介面,而變成子物件例項,為遊戲物件提供服務。這樣既保證了功能程式碼的可重用性,又增加了整個物件體系的模組化和靈活度。
我的理解:Unity把最常使用、最基本的功能以一個個元件的形式提供給開發者。比如位置、音效、渲染、碰撞等。相當於開發者建造一個房子的話,Unity直接提供了磚頭、水泥、木頭、門窗這些基本的物件。開發者可以像搭積木一樣構造出一個個城堡。開發者充當的角色就是“膠水”,將一個個獨立模組通過一定的邏輯,粘連起來,最終達到自己的專案預期目的。
三、Unity有哪些元件
Unity3D = Gameobject + Components;Unity核心思想:一切皆元件;
Transform:物體的空間座標、縮放、旋轉資訊
燈光:點光源、方向光源、
相機
地形
粒子系統
螢幕特效
網格
物理引擎:重力、碰撞、剛體、射線
音效、視訊
動畫
AI:尋路
更多unity2018的功能介紹請到paws3d學習中心查詢。
相關文章
- Unity的Flutter元件渲染UnityFlutter元件
- Unity元件:FixedJoint固定關節Unity元件
- 為Unity元件編寫擴充套件Unity元件套件
- Unity元件:AudioChorusFilterPROonly音訊合聲濾波器Unity元件Filter音訊
- Unity 之 UGUI Scroll Rect滾動矩形元件詳解UnityUGUI元件
- Unity3D 基礎自學學習筆記(二) Unity3D 基礎控制元件Unity3D筆記控制元件
- Unity3D開發入門教程(四)——用Lua實現元件Unity3D元件
- 關於Unity2018的實體元件系統(通用名稱ECS)Unity元件
- Unity——Js和Unity互相呼叫UnityJS
- Unity2D專案-平臺、解謎、戰鬥! 1.3移動元件Unity元件
- unity 程式碼批量修改Remove Missing Script和批量修改指定元件的內容UnityREM元件
- [Unity]StringBuilderUnityUI
- unity xchartsUnity
- environmentmap in unityUnity
- unity backbufferUnity
- Unity2D專案-平臺、解謎、戰鬥! 1.5 Player框架、技能管理元件Unity框架元件
- Unity Shader 00 - 梳理 Unity Shader 的基本結構Unity
- Unity常用宏Unity
- unity學習Unity
- 【Unity】相關Unity
- unity 常用APIUnityAPI
- unity render pipelineUnity
- unity編輯器擴充,查詢專案中預製體引用的元件或者指令碼Unity元件指令碼
- unity destory的坑Unity
- Unity FPSSample Demo研究Unity
- Unity 體積光Unity
- unity+pico+logUnity
- Unity基礎——InputUnity
- Unity 讀取xmlUnityXML
- Unity——物件池管理Unity物件
- Unity的Deferred ShadingUnity
- Unity-2DUnity
- Unity幀動畫Unity動畫
- Unity XLua熱更新Unity
- Unity GC垃圾回收UnityGC
- Unity AssetBundle 載入Unity
- Unity 2018.2之粒子Unity
- [Unity]常用技巧收集Unity