首页 > 代码库 > Unreal Engine 4 C++ 为编辑器中Actor创建自定义图标
Unreal Engine 4 C++ 为编辑器中Actor创建自定义图标
有时候我们创建场景的时候,特定的Actor我们想给它一个特定的图标,便于观察。比如这样:
实现起来也很简单,需要编写C++代码:
我们创建一个Actor,叫AMyActor,它包含一个Sprite(精灵),这个精灵负责显示自定义图标:代码如下
#pragma once #include "GameFramework/Actor.h" #include "Components/BillboardComponent.h" #include "MyActor.generated.h" /** * */ UCLASS() class NANTOPDOWN_API AMyActor : public AActor { GENERATED_UCLASS_BODY() //virtual void BeginPlay() OVERRIDE; UPROPERTY() TSubobjectPtr<UBillboardComponent> SpriteComponent; UTexture2D* SpriteTexture; };
#include "NanTopDown.h" #include "MyActor.h" AMyActor::AMyActor(const class FPostConstructInitializeProperties& PCIP) : Super(PCIP) { struct FConstructorStatics { ConstructorHelpers::FObjectFinderOptional<UTexture2D> NoteTextureObject; FName ID_Notes; FText Name_Notes; FConstructorStatics() : NoteTextureObject(TEXT("Texture2D'/Game/Textures/MyIcon.MyIcon'")) , ID_Notes(TEXT("Notes")) , Name_Notes(NSLOCTEXT("SpriteCategory", "Notes", "Notes")) { } }; static FConstructorStatics Cs; TSubobjectPtr<USceneComponent> SceneComponent = PCIP.CreateDefaultSubobject<USceneComponent>( this, TEXT("SceneComp")); RootComponent = SceneComponent; RootComponent->Mobility = EComponentMobility::Static; #if WITH_EDITORONLY_DATA SpriteComponent = PCIP.CreateEditorOnlyDefaultSubobject<UBillboardComponent>(this, TEXT("Sprite")); if (SpriteComponent) { SpriteComponent->Sprite = Cs.NoteTextureObject.Get(); SpriteComponent->SpriteInfo.Category = Cs.ID_Notes; SpriteComponent->SpriteInfo.DisplayName = Cs.Name_Notes; SpriteComponent->AttachParent = RootComponent; SpriteComponent->Mobility = EComponentMobility::Static; } #endif }
AMyActor只有一个UBillboardComponent组件,加入场景就可以看到自定义的图片了。
参考文章:https://wiki.unrealengine.com/Add_in_editor_Icon_to_your_Custom_Actor
Unreal Engine 4 C++ 为编辑器中Actor创建自定义图标
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。