Files
UnrealEngine/Engine/Source/Runtime/NavigationSystem/Public/BaseGeneratedNavLinksProxy.h
2025-05-18 13:04:45 +08:00

39 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "UObject/ObjectMacros.h"
#include "UObject/Object.h"
#include "NavLinkCustomInterface.h"
#include "BaseGeneratedNavLinksProxy.generated.h"
/**
* Experimental
* Base class used to create generated navlinks proxy.
* The proxy id is used to represent multiple links generated from the same configuration.
*/
UCLASS(Blueprintable, MinimalAPI)
class UBaseGeneratedNavLinksProxy : public UObject, public INavLinkCustomInterface
{
GENERATED_UCLASS_BODY()
// BEGIN INavLinkCustomInterface
NAVIGATIONSYSTEM_API virtual void GetLinkData(FVector& LeftPt, FVector& RightPt, ENavLinkDirection::Type& Direction) const override;
NAVIGATIONSYSTEM_API virtual FNavLinkId GetId() const override;
NAVIGATIONSYSTEM_API virtual void UpdateLinkId(FNavLinkId ProxyId) override;
NAVIGATIONSYSTEM_API virtual UObject* GetLinkOwner() const override;
// END INavLinkCustomInterface
void SetOwner(UObject* NewOwner) { Owner = NewOwner; }
protected:
/** The LinkID will be the same for all navlinks using the proxy. */
UPROPERTY(Transient)
FNavLinkId LinkProxyId;
/** Proxy owner. */
UPROPERTY(Transient)
TObjectPtr<UObject> Owner = nullptr;
};