I’m pasting the Class Definition here:
UCLASS()
class SUBMERGED_API ASubmergedBoatBoostPickup : public ASubmergedUseActor
{
GENERATED_UCLASS_BODY()
public:
UPROPERTY(Transient, Category=Use, BlueprintReadOnly, meta=(Tooltip="Used To tell if this object has been used at all."))
bool bHasBeenUsed;
private:
UPROPERTY(Category=SkeletalMeshActor, VisibleAnywhere, meta=(ExposeFunctionCategories="Mesh,Rendering,Physics,Components|SkeletalMesh,Animation"))
TSubobjectPtr<class USkeletalMeshComponent> SkeletalMeshComponent;
// I Am Here!
UPROPERTY(Category=General, DuplicateTransient, VisibleAnywhere, meta=(Tooltip="This should be a unique ID for each Object."))
FName BoostItemID;
UPROPERTY(Category=General, EditAnywhere, meta=(Tooltip="This is the amount of boost to give the player. (In seconds)"))
float BoostItemValue;
UPROPERTY(Category=General, EditAnywhere, meta=(Tooltip="This is the map name we should be expecting to be inside. Will throw a warning if we are in the wrong place."))
FString ExpectedMapName;
public:
virtual void BeginPlay() override;
virtual void OnConstruction(const FTransform& Transform) override;
UFUNCTION()
void OnMatchStarted();
//use component functions
virtual bool CanBeUsedBy(ASubmergedCharacter* User) override;
virtual void OnObjectUsed(ASubmergedCharacter* User) override;
UFUNCTION()
void OnMadeUseTarget(AController* Controller);
//end use component functions
#if WITH_EDITORONLY_DATA
static void CheckID(ASubmergedBoatBoostPickup* CurrentPickup, UWorld* CurrentWorld);
#endif //WITH_EDITORONLY_DATA
};
ASubmergedUseActor is Derived from AActor.
And the ID is Populated using the following:
(Next Comment)