// Copyright 2025 https://yuewu.dev/en All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "UObject/Interface.h" #include "GCMS_CameraAssistInterface.generated.h" /** */ UINTERFACE(BlueprintType) class UGCMS_CameraAssistInterface : public UInterface { GENERATED_BODY() }; class GENERICCAMERASYSTEM_API IGCMS_CameraAssistInterface { 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() { } };