#include "M4_CentipedeBody.h" AM4_CentipedeBody::AM4_CentipedeBody() { PrimaryActorTick.bCanEverTick = false; static ConstructorHelpers::FObjectFinder MeshRef(TEXT("/Game/CTP/04_Mesh/SM_Cube.SM_Cube")); if (MeshRef.Succeeded()) { GetStaticMeshComponent()->SetStaticMesh(MeshRef.Object); } // Charger les matériaux par défaut (ajustez les chemins selon vos assets) static ConstructorHelpers::FObjectFinder HeadMatRef(TEXT("/Game/CTP/05_Material/MI_Head.MI_Head")); if (HeadMatRef.Succeeded()) { HeadMaterial = HeadMatRef.Object; } static ConstructorHelpers::FObjectFinder BodyMatRef(TEXT("/Game/CTP/05_Material/MI_Body.MI_Body")); if (BodyMatRef.Succeeded()) { BodyMaterial = BodyMatRef.Object; } GetStaticMeshComponent()->SetRelativeScale3D(FVector(1.f, 0.4f, 0.4f)); GetStaticMeshComponent()->SetMobility(EComponentMobility::Movable); GetStaticMeshComponent()->SetCollisionObjectType(ECollisionChannel::ECC_WorldDynamic); GetStaticMeshComponent()->SetGenerateOverlapEvents(true); GetStaticMeshComponent()->SetCollisionEnabled(ECollisionEnabled::QueryOnly); GetStaticMeshComponent()->SetCollisionProfileName(TEXT("OverlapAll")); } void AM4_CentipedeBody::SetAsHead(bool bHead) { bIsHead = bHead; if (bIsHead) { if (HeadMaterial) { GetStaticMeshComponent()->SetMaterial(0, HeadMaterial); } } else { if (BodyMaterial) { GetStaticMeshComponent()->SetMaterial(0, BodyMaterial); } } }