基礎知識-組件

組件(Component)?是可以添加給Actor的一項功能。
當你為Actor添加組件后,Actor就可以使用組件提供的功能。例如:
"聚光源(Spot Light)組件"將使Actor像聚光源一樣發(fā)光。
"旋轉運動(Rotating Movement)組件"將使Actor旋轉。
"音頻(Audio)組件"將使Actor能夠播放聲音。
與Actor不同,組件不能單獨存在。它們只能綁定在Actor身上。
為Actor添加組件的過程,相當于為Actor添加各個零件。例如,一輛汽車(Actor)由車輪、方向盤、車身、車燈等(組件)組成。再例如,玩家角色Actor通常包含一個單獨的"骨骼網(wǎng)格體(Skeletal Mesh)"組件(表示角色外觀)、跟隨角色移動的攝像機,以及接收玩家輸入的控制器。
添加完構成Actor的不同組件后,即使不提供指示Actor應如何運行的任何?藍圖(Blueprint)?腳本(或C++代碼),也可以將Actor放置在關卡中。在上面的示例中,汽車(Actor)可以作為對象存在于世界(關卡)中,無需任何驅動程序(藍圖或C++代碼)告訴它要執(zhí)行什么操作。然后,可以使用藍圖或C++代碼單獨訪問汽車的每個組件(例如,如果按下油門組件,藍圖邏輯可以使汽車加速)。
組件實例化
與一般子對象的默認行為不同,Actor中充當子對象的各種組件都是實例化的,所有某個類的Actor實例都有著單獨的組件實例。
為了理解這點,想象一下上面的汽車示例。一個"汽車(Car)"類使用組件來表示汽車的車輪。四個"車輪(Wheel)"組件是該類的默認屬性中的四個子對象,并指定給了"車輪(Wheels)"數(shù)組。當創(chuàng)建新的汽車實例時,會專門為該汽車實例新建"車輪(Wheel)"組件實例。否則,當世界中一輛汽車移動時,所有汽車的車輪都會轉動;這顯然不是預期的行為。讓組件默認進行實例化,免去了為Actor添加唯一子對象的麻煩。
如果沒有組件實例化,所有組件變量都需要用?Instanced
?屬性說明符進行聲明。
組件類型
本小節(jié)提供將在虛幻引擎中使用的最常見組件類型的文檔鏈接。請注意,此處并未詳盡列出虛幻引擎中提供的所有組件類型。某些插件和項目模板添加了自己的組件,因此某些組件可能并不適用于所有Actor。
你也可以參閱虛幻引擎API參考(https://docs.unrealengine.com/5.1/en-US/API/)的組件查看器(https://docs.unrealengine.com/5.1/en-US/API/Editor/ComponentVisualizers/),以了解更多組件。