子原型指一個繼承另一個原型的原型。原本修改原型的屬性也會跟著修改所有實例的對應屬性,子原型也是一樣。修改母原型的屬性也會反應到子原型身上,當然也會反應到由子原型所建立的實例上。PhysicalMaterial的Parent屬性就有點類似子原型的功能。
使用者介面
其實UE一直都有支援子原型功能,只是沒有寫使用者介面讓開發者可以直接使用。直到2012年2月版的UDK才在內容瀏覽器的內容選單裡增加了建立子原型的選項。
在此之前要建立子原型的話,可以利用關卡編輯器的內容選單的建立原型選項
步驟如下:
- 先在內容瀏覽器內選取母原型
- 在關卡編輯器建內立此原型的實例
- 在實例上按右鍵並選擇建立原型選項,此即子原型
如何支援non-Actor原型
即使新增了子原型選單,non-Actor原型目前仍無法建立子原型。可以在原始碼中確認到這件事情:
- UnrealEdCLR專案的
- ContentBrowserCLR.cpp的
- MContentBrowserControl類別的
- ExecuteCustomObjectCommand()函式的
- IDMN_ObjectContext_CreateSubArchetype案例中
- 會先判斷為Actor才會建立子原型
然而可以自行為non-Actor加上建立子原型的功能。在if後加上以下的else區塊:
else { UObject* SubArchetype = GUnrealEd->Archetype_CreateFromObject( CurrentObject, ArchetypeName, PackageName, GroupName ); if( SubArchetype ) { SubArchetype->SetArchetype( CurrentObject, TRUE ); } }
沒有留言:
張貼留言