// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "UObject/Interface.h" #include "LyraCameraAssistInterface.generated.h" /** */ UINTERFACE(BlueprintType) class ULyraCameraAssistInterface : public UInterface { GENERATED_BODY() }; class ILyraCameraAssistInterface { GENERATED_BODY() public: /** * Get the list of actors that we're allowing the camera to penetrate. Useful in 3rd person cameras * when you need the following camera to ignore things like the a collection of view targets, the pawn, * a vehicle..etc. */ virtual void GetIgnoredActorsForCameraPentration(TArray& OutActorsAllowPenetration) const { } /** * The target actor to prevent penetration on. Normally, this is almost always the view target, which if * unimplemented will remain true. However, sometimes the view target, isn't the same as the root actor * you need to keep in frame. */ virtual TOptional GetCameraPreventPenetrationTarget() const { return TOptional(); } /** Called if the camera penetrates the focal target. Useful if you want to hide the target actor when being overlapped. */ virtual void OnCameraPenetratingTarget() { } };