LifePlay-Revival/Source/LifePlay/LPMeshCompat.h
2026-09-30 16:53:16 +02:00

32 lines
1.4 KiB
C++

// Portage UE 5.5 - lot L7a (R-03, ERR-012) : remplacement des noeuds "Get SkeletalMesh" deprecies.
//
// En UE 5.1+, la propriete USkinnedMeshComponent::SkeletalMesh est depreciee (remplacee par
// SkinnedAsset). Les Blueprints 4.27 la lisent encore : chaque lecture passe par son getter
// GetSkeletalMesh_DEPRECATED(), qui renvoie Cast<USkeletalMesh>(GetSkinnedAsset()).
//
// Le premier essai (CX-B05) rebranchait ces lectures sur USkeletalMeshComponent::GetSkeletalMeshAsset().
// Cette fonction n'existe que sur USkeletalMeshComponent : sur les composants proxy de LifePlay,
// qui sont des USkinnedMeshComponent, le cast echouait et la lecture renvoyait None (ERR-002 aggrave).
//
// ULPMeshCompat::GetSkeletalMesh reproduit exactement le getter du moteur, pour tout
// USkinnedMeshComponent, sans passer par une API depreciee.
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "LPMeshCompat.generated.h"
class USkeletalMesh;
class USkinnedMeshComponent;
UCLASS()
class LIFEPLAY_API ULPMeshCompat : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
/** Maillage squelettique du composant : Cast<USkeletalMesh>(GetSkinnedAsset()), None si Component est None. */
UFUNCTION(BlueprintPure, Category = "Components|SkinnedMesh", meta = (DisplayName = "Get Skeletal Mesh (UE4)"))
static USkeletalMesh* GetSkeletalMesh(const USkinnedMeshComponent* Component);
};