void AXtremeJanitorCharacter::Tick(float DeltaTime) { Super::Tick(DeltaTime); if (Controller && Controller->IsLocalController()) { AUsableActor* Usable = GetUsableInView(); // Terminer le focus sur l'objet précédent if (FocusedUsableActor != Usable) { if (FocusedUsableActor) { FocusedUsableActor->OnEndFocus(); } bHasNewFocus = true; } // Assigner le nouveau focus (peut être nul ) FocusedUsableActor = Usable; // Démarrer un nouveau focus si Usable != null; if (Usable) { if (bHasNewFocus) { Usable->OnBeginFocus(); bHasNewFocus = false; // Pour débogage, vous pourrez l'oter par la suite GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, TEXT("Focus")); } } } }
void AXtremeJanitorCharacter::Use() { AUsableActor* Usable = GetUsableInView(); if (Usable) { Usable->OnUsed(this); } }
void AShooterCharacter::Use() { // Only allow on server. If called on client push this request to the server if (Role == ROLE_Authority) { AUsableActor* Usable = GetUsableInView(); if (Usable) { Usable->OnUsed(this); } } else { ServerUse(); } }