Как добавить Актера и переместить его в Unreal Editor?

Я новичок в разработке игр. Пройдите учебный курс Приступайте к работе (https://docs.unrealengine.com/latest/INT/Programming/QuickStart/7/index.html) Я создал расширенный AActor класса AMyActorTest:

#include "TestUProject.h"
#include "MyActorTest.h"


AMyActorTest::AMyActorTest(const class FPostConstructInitializeProperties& PCIP)
    : Super(PCIP)
{
    MyNumber = 12;
}

void AMyActorTest::BeginPlay()
{
    Super::BeginPlay();

    if (GEngine)
    {
        GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, TEXT("Hello World!"));
        GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, FString::FromInt(MyNumber));
    }

}

У меня проблема в том, что я не могу перейти в Editor в AActor после того, как поместил его в ViewPort. Я прочитал, что мне не хватает RootComponent для моего Актера, но я не понимаю, как его добавить (возможно, я не совсем понимаю актеров). Могу ли я помочь вам получить мой исходный код для решения моей проблемы? Этот код делает с точки зрения обучения. Моя цель - добавить актера и уметь его двигать и вращать.


person njc    schedule 01.07.2014    source источник


Ответы (1)


Пожалуйста, добавьте этот код

RootComponent = PCIP.CreateDefaultSubobject<USceneComponent>(this, TEXT("Root"));

вашему конструктору. Это все. Если вы хотите добавить другие компоненты, вы можете использовать аналогичный код (в этом примере создается UInstancedStaticMeshComponent:

UInstancedStaticMeshComponent* instancedComp = PCIP.CreateDefaultSubobject<UInstancedStaticMeshComponent>(RootComponent, TEXT("SubMeshInstanced"));
instancedComp->AttachTo(RootComponent);  // this is important!

// this part is specific to this component 
// (although all are common to other types of your Root subitems)

instancedComp->SetStaticMesh(mesh);       

instancedComp->SetMaterial(0, material);
instancedComp->bOwnerNoSee = false;
instancedComp->bCastDynamicShadow = false;
instancedComp->CastShadow = false;
instancedComp->SetHiddenInGame(false);
instancedComp->SetMobility(EComponentMobility::Static);
person Pavel Pája Halbich    schedule 16.04.2015