// © 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& 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; /** Called if the camera penetrates the focal target. Useful if you want to hide the target actor when being overlapped. */ virtual void OnCameraPenetratingTarget(); };