Unity에서 Inspector에 prefab등록해서 Instantiate 하던 것처럼
Unreal Engine 4에서도 Detail 패널에 Blueprint를 등록해서 Spawn 하는 방법에 대해서 학습하였습니다.
파티클 시스템을 커스텀하게 만들어 보고 싶었기 때문에 예제를 파티클로 작성하겠습니다.
#include "GameFramework/Actor.h"
#include "ParticleSeed.generated.h"
UCLASS()
class UE4Project_API AParticleSeed : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AParticleSeed();
// Called when the game starts or when spawned
virtual void BeginPlay() override;
// Called every frame
virtual void Tick( float DeltaSeconds ) override;
UPROPERTY(EditAnywhere)
UClass* Element;
UPROPERTY(EditAnywhere)
unsigned int ElementCount = 100;
};
UClass* 타입을 디테일 탭에서 노출시켜 블루프린트를 등록합니다.
UPROPERTY(EditAnywhere)
UClass* Element;
게임이 플레이 될 때 등록된 블루프린트를 생성하고 랜덤하게 위치를 설정해줍니다.
void AParticleSeed::BeginPlay()
{
Super::BeginPlay();
if (Element == nullptr)
{
UE_LOG(LogTemp, Error, TEXT("No Some Class"));
return;
}
while (ElementCount--)
{
AActor* Actor = GetWorld()->SpawnActor(Element);
if (Actor == nullptr)
{
UE_LOG(LogTemp, Error, TEXT("No Actor"));
return;
}
Actor->SetActorLocation(FVector(FMath::FRandRange(0, 100), FMath::FRandRange(0, 100), FMath::FRandRange(0, 100)));
}
}
'프로그래밍 > UnrealEngine4' 카테고리의 다른 글
Unreal engine 4 SetActive (0) | 2017.01.31 |
---|---|
Unreal engine 4 intellisense 속도 (0) | 2017.01.18 |
Unreal Engine 4 매크로 자동 들여쓰기 해결법 (0) | 2016.12.31 |
Unreal engine 4 언어 설정 (0) | 2016.12.22 |
UnrealEngine 4 Git, .gitignore (0) | 2016.12.22 |