40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
|
// © 2024 Long Ly. All rights reserved. Any unauthorized use, reproduction, or distribution of this trademark is strictly prohibited and may result in legal action.
|
|||
|
|
|||
|
#pragma once
|
|||
|
|
|||
|
#include "CoreMinimal.h"
|
|||
|
#include "UObject/Interface.h"
|
|||
|
#include "OLSCameraAssistInterface.generated.h"
|
|||
|
|
|||
|
UINTERFACE(BlueprintType)
|
|||
|
class UOLSCameraAssistInterface : public UInterface
|
|||
|
{
|
|||
|
GENERATED_BODY()
|
|||
|
};
|
|||
|
|
|||
|
/**
|
|||
|
*
|
|||
|
*/
|
|||
|
class IOLSCameraAssistInterface
|
|||
|
{
|
|||
|
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 GetIgnoredActorsForCameraPenetration(TArray<const AActor*>& 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<AActor*> GetCameraPreventPenetrationTarget() const;
|
|||
|
|
|||
|
/** Called if the camera penetrates the focal target. Useful if you want to hide the target actor when being overlapped. */
|
|||
|
virtual void OnCameraPenetratingTarget();
|
|||
|
};
|