void UCheatManager::ChangeSize( float F ) { APawn* Pawn = GetOuterAPlayerController()->GetPawn(); // Note: only works on characters ACharacter *Character = Cast<ACharacter>(Pawn); if (Character) { ACharacter* DefaultCharacter = Character->GetClass()->GetDefaultObject<ACharacter>(); Character->GetCapsuleComponent()->SetCapsuleSize(DefaultCharacter->GetCapsuleComponent()->GetUnscaledCapsuleRadius() * F, DefaultCharacter->GetCapsuleComponent()->GetUnscaledCapsuleHalfHeight() * F); if (Character->GetMesh()) { Character->GetMesh()->SetRelativeScale3D(FVector(F)); } Character->TeleportTo(Character->GetActorLocation(), Character->GetActorRotation()); } }
void ABatteryCollectorGameMode::HandleNewState(EBatteryPlayState NewState) { switch (NewState) { // If the game is playing case EBatteryPlayState::EPlaying: { // spawn volumes active for (ASpawnVolume* Volume : SpawnVolumeActors) { Volume->SetSpawningActive(true); } } break; // If we've won the game case EBatteryPlayState::EWon: { // spawn volumes inactive for (ASpawnVolume* Volume : SpawnVolumeActors) { Volume->SetSpawningActive(false); } } break; // If we've lost the game case EBatteryPlayState::EGameOver: { // spawn volumes inactive for (ASpawnVolume* Volume : SpawnVolumeActors) { Volume->SetSpawningActive(false); } // block player input APlayerController* PlayerController = UGameplayStatics::GetPlayerController(this, 0); if (PlayerController) { PlayerController->SetCinematicMode(true, false, false, true, true); } // ragdoll the character ACharacter* MyCharacter = UGameplayStatics::GetPlayerCharacter(this, 0); if (MyCharacter) { MyCharacter->GetMesh()->SetSimulatePhysics(true); MyCharacter->GetMovementComponent()->MovementState.bCanJump = false; } } break; // Unknown/default state default: case EBatteryPlayState::EUnknown: { // do nothing } break; } }
void AAssignment_1GameMode::HandleCurrentState(EBatteryPlayState NewState) { switch (NewState) { // If the game is playing case EBatteryPlayState::EPlaying: { // Spawn Volumes Active for (ASpawnVolume * Volume : SpawnVolumeActors) { Volume->SetSpawningActive(true); } } break; // If we've won the game case EBatteryPlayState::EWon: { // Spawn Volumes Inactive for (ASpawnVolume * Volume : SpawnVolumeActors) { Volume->SetSpawningActive(false); } } break; // If we've lost the game case EBatteryPlayState::EGameOver: { // Spawn Volumes Inactives for (ASpawnVolume * Volume : SpawnVolumeActors) { Volume->SetSpawningActive(false); } // Block Player Input APlayerController * PlayerController = UGameplayStatics::GetPlayerController(this, 0); if (PlayerController) { PlayerController->SetCinematicMode(true, true, true); } // Ragdoll the character ACharacter* MyCharacter = UGameplayStatics::GetPlayerCharacter(this, 0); if (MyCharacter) { MyCharacter->GetMesh()->SetSimulatePhysics(true); MyCharacter->GetMovementComponent()->MovementState.bCanJump = false; } } break; // Debug default: case EBatteryPlayState::EUnknown: { // Do nothing } break; } }
void ABatteryCollectorGameMode::HandleNewState(EBatteryPlayState NewState) { switch (NewState) { case EBatteryPlayState::EPlaying: { for (ASpawnVolume* Volume : SpawnVolumeActors) { Volume->SetSpawningActive(true); } } break; case EBatteryPlayState::EGameOver: { for (ASpawnVolume* Volume : SpawnVolumeActors) { Volume->SetSpawningActive(false); } APlayerController* PlayerController = UGameplayStatics::GetPlayerController(this, 0); if (PlayerController) { PlayerController->SetCinematicMode(true, false, false, true, true); } ACharacter* MyCharacter = UGameplayStatics::GetPlayerCharacter(this, 0); if (MyCharacter) { MyCharacter->GetMesh()->SetSimulatePhysics(true); MyCharacter->GetMovementComponent()->MovementState.bCanJump = false; } } break; case EBatteryPlayState::EWon: { for (ASpawnVolume* Volume : SpawnVolumeActors) { Volume->SetSpawningActive(false); } } break; case EBatteryPlayState::EUnknown: break; default: break; } }
bool FMovieScene3DTransformSectionRecorderFactory::CanRecordObject(UObject* InObjectToRecord) const { if(USceneComponent* SceneComponent = Cast<USceneComponent>(InObjectToRecord)) { // Dont record the root component transforms as this will be taken into account by the actor transform track // Also dont record transforms of skeletal mesh components as they will be taken into account in the actor transform bool bIsCharacterSkelMesh = false; if (SceneComponent->IsA<USkeletalMeshComponent>() && SceneComponent->GetOwner()->IsA<ACharacter>()) { ACharacter* Character = CastChecked<ACharacter>(SceneComponent->GetOwner()); bIsCharacterSkelMesh = SceneComponent == Character->GetMesh(); } return (SceneComponent != SceneComponent->GetOwner()->GetRootComponent() && !bIsCharacterSkelMesh); } else { return InObjectToRecord->IsA<AActor>(); } }
void ABatteryPickup::UpdateBeamTargetPoint() { ACharacter* Character = GetWorld()->GetFirstPlayerController()->GetCharacter(); FVector SocketLocation = Character->GetMesh()->GetSocketLocation("spine_02"); ParticleSystem->SetBeamTargetPoint(0, SocketLocation, 0); }
void ABatteryCollectorGameMode::HandleNewState(EBatteryPlayState NewState) { switch (NewState) { case EBatteryPlayState::EPlaying : // If the game is playing // // spawn volume active for (ASpawnVolume* Volume : SpawnVolumeActors) { Volume->SetSpawningActive(true); } break; case EBatteryPlayState::EWon : // if we won the game // // spawn volume inactive for (ASpawnVolume* Volume : SpawnVolumeActors) { Volume->SetSpawningActive(false); } break; case EBatteryPlayState::EGameOver : { // If we lost // // spawn volume inactive // block player input // ragdoll the character for (ASpawnVolume* Volume : SpawnVolumeActors) { Volume->SetSpawningActive(false); } APlayerController* PlayerController = UGameplayStatics::GetPlayerController(this, 0); if(PlayerController) { PlayerController->SetCinematicMode(true, false, false, true, true); UE_LOG(LogClass, Log, TEXT("You have set Cinematic Mode")); } else { UE_LOG(LogClass, Log, TEXT("Player Controller was invalid!!")); } // now ragdoll the character ACharacter* MyCharacter = UGameplayStatics::GetPlayerCharacter(this, 0); if(MyCharacter) { MyCharacter->GetMesh()->SetSimulatePhysics(true); MyCharacter->GetMovementComponent()->MovementState.bCanJump=false; UE_LOG(LogClass, Log, TEXT("ACharacter jump turned off and Set Simulate Physics on")); }else { UE_LOG(LogClass, Log, TEXT("ACharacter was invalid!! (EGameOver State in HandleNewState")); } } break; default : // unknown state - incase some code forgets to call // // use to help debug break; } }