언리얼4 C++ 탄창 액터 스폰 (Spawn Actor)

Intro

  • 랜덤 탄창 드랍 구현

스폰할 액터 저장

탄창 액터 선언

UPROPERTY(EditAnywhere)
TSubclassOf<class AActor> AmmoBlueprint;

인스턴스 저장

static ConstructorHelpers::FObjectFinder<UBlueprint> AmmoItem(TEXT("Blueprint'/Game/Weapon/Ammo.Ammo'"));
if (AmmoItem.Object)
{
	AmmoBlueprint = (UClass*)AmmoItem.Object->GeneratedClass;
}

액터 스폰

int32 Random=FMath::RandRange(1, 10);
	
	if (Random == 1&&AmmoBlueprint)
	{
		UWorld* world = GetWorld();
		if (world)
		{
			UE_LOG(LogTemp, Log, TEXT("SpawnAmmo"));
			FActorSpawnParameters SpawnParams;
			SpawnParams.Owner = this;
			FRotator rotator;
			FVector  SpawnLocation = GetActorLocation();
			SpawnLocation.Z -= 90.0f;
			
			world->SpawnActor<AActor>(AmmoBlueprint, SpawnLocation, rotator, SpawnParams);
		}
	}
}

몬스터가 죽을때 실행되는 Death함수에 탄창 액터를 스폰시키도록 한다.

이때 1부터 10까지 난수를 발생시키고 1일때 스폰시키도록 하여 10%의 확률을 주었다.

실행 결과

죽은 자리에 스폰되는 탄창 액터

1

참고문서

http://api.unrealengine.com/KOR/Programming/UnrealArchitecture/Actors/Spawning/

댓글남기기