UDN
Search public documentation:
DevelopmentKitGemsAddingSpritesMeshesParticleEffectsCH
English Translation
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
如何将平面实例、网格物体或粒子效果添加到 actor 中
最后一次测试是在2011年3月份的UDK版本上进行的。
可以与PC和iOS兼容
概述
相关主题
Unrealscript 方法
默认属性
如何在 Unrealscript 内的默认属性中添加一个静态网格物体子对象。 首先我们在类全局变量列表中声明一个静态网格物体组件变量。这可以确保这个类引用默认属性中定义的静态网格物体组件。 在默认属性中,我们可以创建一个子对象。在默认属性中创建子对象之后,将其添加到这个 actor 内的组件数组中。应该将所有组件子对象添加到组件数组,否则将不会使用它们。class MyActor extends Actor; // 显示在虚幻脚本和虚幻编辑器中 var() StaticMeshComponent StaticMesh; defaultproperties { // 声明子对象 Begin Object Class=StaticMeshComponent Name=MyStaticMeshComponent StaticMesh=StaticMesh'EditorMeshes.TexPropPlane' End Object StaticMesh=MyStaticMeshComponent Components.Add(MyStaticMeshComponent) }
class MySubActor extends MyActor; defaultproperties { // 重新定义子对象 Begin Object Name=MyStaticMeshComponent StaticMesh=StaticMesh'EngineMeshes.Cube' End Object StaticMesh=MyStaticMeshComponent Components.Add(MyStaticMeshComponent) }
class MySubActor extends MyActor; defaultproperties { Components.Remove(MyStaticMeshComponent) // Remove a specific actor component Components.Empty // 删除所有 actor 组件 }
运行时间
如何在运行时过程中将一个静态网格物体组件添加到 Unrealscript 的组件中。可以在任何函数中添加它,而不只是在 PostBeginPlay 中。您可能需要初始化 actor 组件或设置一些其他属性。class MyActor extends Actor; var() StaticMeshComponent StaticMesh; function PostBeginPlay() { Super.PostBeginPlay(); StaticMesh = new () class'StaticMeshComponent'; if (StaticMesh != None) { StaticMesh.SetStaticMesh(StaticMesh'EngineMeshes.Cube'); AttachComponent(StaticMesh); } } defaultproperties { }
相关主题
虚幻编辑器方法
class DynamicActorComponent extends Actor ClassGroup(Common) AutoExpandCategories(DynamicActorComponent) placeable; // 显示在虚幻脚本和虚幻编辑器中 var() const EditInline Instanced array<PrimitiveComponent> PrimitiveComponents; function PostBeginPlay() { local int i; // 检查图元组件数组看看我们是否需要向组件数组中添加任何组件。 if (PrimitiveComponents.Length > 0) { for (i = 0; i < PrimitiveComponents.Length; ++i) { if (PrimitiveComponents[i] != None) { AttachComponent(PrimitiveComponents[i]); } } } Super.PostBeginPlay(); } defaultproperties { Begin Object Class=SpriteComponent Name=Sprite Sprite=Texture2D'EditorResources.S_Actor' HiddenGame=True AlwaysLoadOnClient=False AlwaysLoadOnServer=False End Object Components.Add(Sprite) }
使用 DynamicActorComponent 数组
打开 Content Browser 并点击 Actor Classes 选项卡。您的新 DynamicActorComponent 应该在 Common 群组内。选择它。 在世���中生成一个简单的 BSP 地板。记得向不会被正常照亮的世界或场景中添加一个光源 actor。 在您希望放置动态 actor 组件的世界视图中右击。它将会打开关联菜单。选择并点击“在此处添加 DynamicActorComponent Here”。 创建它的时候,会自动选中它。 按下 F4 打开属性窗口。 否则,如果没有选中它,您通常会在 actor 列表中找到这个 actor。 在“图元数组”数组中点击绿色加号。这样将会在数组内部创建一个新的元素。然后点击蓝色数组下拉菜单,然后选择 StaticMeshComponent 创建一个新的 StaticMeshComponent 对象。 在内容浏览器中查找并选择一个有趣的静态网格物体。 展开这个新的对象定义。然后找到 Static Mesh Component 项。按下绿色小箭头设置这个静态网格物体。 启动 PIE 使这个 actor 可见。下载
- 下载上面示例中用到的内容。(DynamicActorComponents.zip)