LifePlay-Revival/Source/LifePlay/LPSecondScreenSubsystem.h
edujiro5972 ed4bc46ba9 L7j : sous-systeme LPSecondScreen, camera d'appel cadree sur le visage du contact
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 22:32:42 +02:00

36 lines
1.4 KiB
C++

// Portage UE 5.5 - lot L7j (ERR-031, amelioration : defaut deja present en 4.27).
//
// Pendant un appel, l'encadre affiche l'image de la camera SceneCapture2D "SecondScreen" de CentralLondon.
// Le contact (GI.SecondScreenPerson) y est place sur son emplacement de scene, decale de -10 000 000 en Y
// (GI::Show) : sa position depend donc de la scene et de son rang. Aucun Blueprint ne deplace la camera.
//
// Ce sous-systeme, a chaque image ou un contact est affiche, place la camera devant le visage du contact
// (os "head" du premier maillage squelettique qui le porte, sinon haut de la capsule), dans l'axe du
// personnage, et resserre le champ : l'encadre montre le visage quel que soit l'emplacement.
// Aucun Blueprint ni asset n'est modifie ; sans camera "SecondScreen" ou sans contact, il ne fait rien.
#pragma once
#include "CoreMinimal.h"
#include "Containers/Ticker.h"
#include "Subsystems/GameInstanceSubsystem.h"
#include "LPSecondScreenSubsystem.generated.h"
class ASceneCapture2D;
UCLASS()
class LIFEPLAY_API ULPSecondScreenSubsystem : public UGameInstanceSubsystem
{
GENERATED_BODY()
public:
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
virtual void Deinitialize() override;
private:
bool Tick(float DeltaTime);
FTSTicker::FDelegateHandle TickHandle;
TWeakObjectPtr<ASceneCapture2D> Capture;
TWeakObjectPtr<UWorld> CaptureWorld;
};