Unreal Engine 4
http://uengine.ru/forum/

Спавн Blueprint-Actor-ов из кода
http://uengine.ru/forum/viewtopic.php?f=19&t=13649
Страница 1 из 1

Автор:  rachok [ 04 май 2018, 11:18 ]
Заголовок сообщения:  Спавн Blueprint-Actor-ов из кода

Добрый день!
Есть Blueprint-Actor "BP_test2", который создан из класса sssaaa2 и состоит из одного кубика, еще есть класс С++ Spawner1, из него я пытаюсь поставить этот кубик на сцену, и этот скрипт выглядит так:
(.cpp)
Код:
#include "Spawner1.h"

#include "Runtime/CoreUObject/Public/UObject/ConstructorHelpers.h"
#include "Runtime/Engine/Classes/Engine/World.h"
#include "Engine/Blueprint.h"

ASpawner1::ASpawner1()
{
   PrimaryActorTick.bCanEverTick = true;

   static ConstructorHelpers::FObjectFinder<UBlueprint> PutNameHere(TEXT("Blueprint'/Game/BP_test2.BP_test2'"));
   if (PutNameHere.Object)
   {
      BlueprintVar = (UClass*)PutNameHere.Object->GeneratedClass;
   }
}

void ASpawner1::BeginPlay()
{
   Super::BeginPlay();
   
   UWorld* const World = GetWorld();
   if (World)
   {
      sssaaa2* YC = World->SpawnActor<sssaaa2>(BlueprintVar, FVector(0, 0, 0), FRotator(0, 0, 0));
   }
}

void ASpawner1::Tick(float DeltaTime)
{
   Super::Tick(DeltaTime);

}

Здесь я пытаюсь найти и получить мой блюпринт, сделать из него класс, а потом отспавнить его в BeginPlay.
(.h)
Код:
#pragma once

#include "sssaaa2.h"

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Spawner1.generated.h"

UCLASS()
class CPPPROJ3_API ASpawner1 : public AActor
{
   GENERATED_BODY()
   
public:   
   ASpawner1();

protected:
   virtual void BeginPlay() override;


public:   
   virtual void Tick(float DeltaTime) override;

   TSubclassOf<class sssaaa2> BlueprintVar;
};


Все делаю по рецепту:
https://answers.unrealengine.com/questi ... rom-c.html
но нифига не выходит.
1. При попытке компилировать в UE выдает ошибку в строке
Код:
   TSubclassOf<class sssaaa2> BlueprintVar;

в заголовочном файле.
Да еще и выдает отличное описание ошибки
Цитата:
D:\UnrealEngine\UE_4.19\Engine\Source\Runtime\CoreUObject\Public\Templates/SubclassOf.h(55) : error C2027: ?ᯮ?짮????? ????।???????? ⨯? "sssaaa2"
d:\unrealprojects\cppproj3\source\cppproj3\Spawner1.h(26) : note: ??. ??????? "sssaaa2"
D:\UnrealEngine\UE_4.19\Engine\Source\Runtime\CoreUObject\Public\Templates/SubclassOf.h(54) : note: ??? ???????樨 ?㭪樨-童?? "<??? ??????>" ?????? ????? <??? ??????>
D:\UnrealEngine\UE_4.19\Engine\Source\Runtime\CoreUObject\Public\Templates/SubclassOf.h(77) : note: ?믮??????? ?????????? ??뫪? ?? ????????? 蠡??? ?㭪樨 "UClass *TSubclassOf<sssaaa2>::operator *(void) const"
d:\unrealprojects\cppproj3\source\cppproj3\Spawner1.h(26) : note: ?믮??????? ?????????? ??뫪? ?? ????????? 蠡??? ????? "TSubclassOf<sssaaa2>"
D:\UnrealEngine\UE_4.19\Engine\Source\Runtime\CoreUObject\Public\Templates/SubclassOf.h(55) : error C3861: StaticClass: ??????䨪???? ?? ??????


В общем, что я делаю не так, и как спавнить Bluprint-Actorы из скрипта?
P.S. Поправил пока никто не видел...

Автор:  rachok [ 04 май 2018, 13:23 ]
Заголовок сообщения: 

Дичь!
Надо было заменить sssaaa2 на Asssaaa2...

Автор:  gary_cho [ 04 май 2018, 14:36 ]
Заголовок сообщения: 

жесть у тебя темы.. я же говорил учи с++ и не будет проблем!

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/