A warning message about Iris : Generating descriptor for struct that has custom serialization.

FRootMotionSource_MoveLocalToWorld ,It’s my custom RootMotionSource structure,Used for climbing and other movements in multiplayer games.
How to resolve this warning? The following is the code declaration

#pragma once

include “CoreMinimal.h”
include “GameFramework/RootMotionSource.h”
include “WildRootMotionSource.generated.h”

USTRUCT()
struct FRootMotionSource_MoveLocalToWorld : public FRootMotionSource
{
GENERATED_USTRUCT_BODY()

FRootMotionSource_MoveLocalToWorld()
{
	StartLocation = FVector_NetQuantize::ZeroVector;

	Ary_PathPoints = {};
	
	TargetComponent = nullptr;

	StartRotation = TargetRotation = FRotator::ZeroRotator;

	bUseRotation = false;
}

virtual ~FRootMotionSource_MoveLocalToWorld() override {}

bool bUseRotation;

UPROPERTY()
FVector_NetQuantize StartLocation;

UPROPERTY()
FRotator StartRotation;

UPROPERTY()
FRotator TargetRotation;

TArray<FVector4> Ary_PathPoints;

UPROPERTY()
TObjectPtr<UPrimitiveComponent> TargetComponent;

FSimpleMulticastDelegate OnPlayMontageEvent;

FSimpleMulticastDelegate OnMoveCompleteEvent;

virtual FRootMotionSource* Clone() const override;

virtual bool Matches(const FRootMotionSource* Other) const override;

virtual bool MatchesAndHasSameState(const FRootMotionSource* Other) const override;

virtual bool UpdateStateFrom(const FRootMotionSource* SourceToTakeStateFrom, bool bMarkForSimulatedCatchup = false) override;

virtual void SetTime(float NewTime) override;

virtual void CheckTimeOut() override;

virtual void PrepareRootMotion(
	float SimulationTime, 
	float MovementTickTime,
	const ACharacter& Character, 
	const UCharacterMovementComponent& MoveComponent
	) override;

virtual bool NetSerialize(FArchive& Ar, UPackageMap* Map, bool& bOutSuccess) override;

virtual UScriptStruct* GetScriptStruct() const override;

virtual FString ToSimpleString() const override;

virtual void AddReferencedObjects(class FReferenceCollector& Collector) override;

};

template<>
struct TStructOpsTypeTraits<FRootMotionSource_MoveLocalToWorld> : public TStructOpsTypeTraitsBase2<FRootMotionSource_MoveLocalToWorld>
{
enum
{
WithNetSerializer = true,
WithCopy = true
};
};
在此处键入或粘贴代码

在此处键入或粘贴代码

Code compiles with no problems

Did you implement all of the functions in the cpp file?
Don’t forget to call super on all of the functions before extending the functions.

hi,I have solved this problem,The reason is that the Iris system uses a new custom serialization structure, and if this structure is not defined, a warning will be issued and the default serialization structure will be used.
Read more RootMotionSourceGroupNetSerializer.h

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.