167{
168 if(SpawnLocationData.
ActorToSpawn ==
nullptr){UE_LOG(LogAIToolKit,
Error,TEXT(
"No Actor to Spawn in AISpawnLocation"));
return;}
169 FVector RandomSpawnLocation = FVector::Zero();
171 {
173 {
175 {
177 }
178 else
179 {
181 }
182 }
183
184
185 }
186
187 const float SpawnRotationZ = UKismetMathLibrary::RandomFloatInRange(0.0f, 360.0f);
188 const FRotator SpawnRotation = FRotator(0.0f, SpawnRotationZ, 0.0f);
189 FNavLocation SpawnLocation;
190 if(RandomSpawnLocation != FVector::Zero())
191 {
192 SpawnLocation = FNavLocation(RandomSpawnLocation);
193 }
194 else
195 {
196 const UNavigationSystemV1* NavSystemV1 = FNavigationSystem::GetCurrent<UNavigationSystemV1>(GetWorld());
197 if(NavSystemV1 ==
nullptr){UE_LOG(LogAIToolKit,
Warning,TEXT(
"Navigation System Failed in AI Spawner"));
return;}
199 if(!bSuccess)
200 {
202 return;
203 }
204 }
205 APawn* SpawnedPawn = UAIBlueprintHelperLibrary::SpawnAIFromClass(
this, SpawnLocationData.
ActorToSpawn,
nullptr, SpawnLocation, SpawnRotation,
true,
this);
206 if(SpawnedPawn ==
nullptr){
if(
bDebuggingMode){UE_LOG(LogAIToolKit,
Error, TEXT(
"Spawn Failed"));}
return;}
207
210}
FVector GetRandomSpawnLocationInArea(TArray< FVector > &Locations)
Definition AISpawnLocation.cpp:153
FOnAISpawned OnAISpawned
Definition AISpawnLocation.h:24
bool bUseSpawnLocationsGlobal
Definition AIDataTypes.h:740
TArray< FVector > SpawnLocations
Definition AIDataTypes.h:742
bool bUseSpawnLocations
Definition AIDataTypes.h:738