Replace SkeletalMesh with SkeletalMeshComponent

This commit is contained in:
baz 2024-05-10 18:03:22 +01:00
parent 126a9e116a
commit e97ed90ffd
4 changed files with 15 additions and 6 deletions

View File

@ -188,6 +188,7 @@ AWeapon* ANakatomiCharacter::InitializeWeapon(TSubclassOf<class AWeapon> weapon)
FActorSpawnParameters SpawnParameters; FActorSpawnParameters SpawnParameters;
SpawnParameters.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; SpawnParameters.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
AWeapon* Weapon = GetWorld()->SpawnActor<AWeapon>(weapon, SpawnParameters); AWeapon* Weapon = GetWorld()->SpawnActor<AWeapon>(weapon, SpawnParameters);
Weapon->SetOwner(this);
Weapon->AttachToComponent(GetMesh(), FAttachmentTransformRules::SnapToTargetNotIncludingScale, "WeaponHand"); Weapon->AttachToComponent(GetMesh(), FAttachmentTransformRules::SnapToTargetNotIncludingScale, "WeaponHand");
Weapon->SetActorEnableCollision(false); Weapon->SetActorEnableCollision(false);
Weapon->SetActorHiddenInGame(true); Weapon->SetActorHiddenInGame(true);

View File

@ -11,7 +11,7 @@ ARandomWeapon::ARandomWeapon()
void ARandomWeapon::BeginPlay() void ARandomWeapon::BeginPlay()
{ {
WeaponProperties = RandomWeaponParameters->GenerateRandomWeaponProperties(); WeaponProperties = RandomWeaponParameters->GenerateRandomWeaponProperties();
WeaponSkeletalMesh = RandomWeaponParameters->PickRandomMesh(); WeaponSkeletalMeshComponent->SetSkeletalMeshAsset(RandomWeaponParameters->PickRandomMesh());
FireSound = RandomWeaponParameters->PickRandomSoundBase(); FireSound = RandomWeaponParameters->PickRandomSoundBase();
FieldSystemActor = RandomWeaponParameters->PickRandomFieldSystem(); FieldSystemActor = RandomWeaponParameters->PickRandomFieldSystem();

View File

@ -7,6 +7,13 @@
// Sets default values // Sets default values
AWeapon::AWeapon() AWeapon::AWeapon()
{ {
WeaponSkeletalMeshComponent = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("Skeletal Mesh Component"));
WeaponSkeletalMeshComponent->SetCollisionProfileName(FName("NoCollision"));
WeaponSkeletalMeshComponent->SetCollisionEnabled(ECollisionEnabled::NoCollision);
WeaponSkeletalMeshComponent->SetSimulatePhysics(false);
WeaponSkeletalMeshComponent->SetGenerateOverlapEvents(false);
WeaponSkeletalMeshComponent->SetNotifyRigidBodyCollision(false);
SetRootComponent(WeaponSkeletalMeshComponent);
} }
// Called when the game starts or when spawned // Called when the game starts or when spawned
@ -19,12 +26,12 @@ void AWeapon::BeginPlay()
USkeletalMesh* AWeapon::GetSkeletalMesh() USkeletalMesh* AWeapon::GetSkeletalMesh()
{ {
return WeaponSkeletalMesh; return WeaponSkeletalMeshComponent->GetSkeletalMeshAsset();
} }
void AWeapon::SetSkeletalMesh(USkeletalMesh* USkeletalMesh) void AWeapon::SetSkeletalMesh(USkeletalMesh* USkeletalMesh)
{ {
WeaponSkeletalMesh = USkeletalMesh; WeaponSkeletalMeshComponent->SetSkeletalMeshAsset(USkeletalMesh);
} }
TEnumAsByte<WeaponState>* AWeapon::GetCurrentWeaponStatus() TEnumAsByte<WeaponState>* AWeapon::GetCurrentWeaponStatus()

View File

@ -29,8 +29,8 @@ class NAKATOMI_API AWeapon : public AActor
GENERATED_BODY() GENERATED_BODY()
protected: protected:
UPROPERTY(EditDefaultsOnly) UPROPERTY(BlueprintReadWrite)
USkeletalMesh* WeaponSkeletalMesh = nullptr; USkeletalMeshComponent* WeaponSkeletalMeshComponent;
UPROPERTY(EditDefaultsOnly) UPROPERTY(EditDefaultsOnly)
TEnumAsByte<WeaponState> CurrentWeaponStatus; TEnumAsByte<WeaponState> CurrentWeaponStatus;
@ -65,6 +65,7 @@ public:
protected: protected:
// Called when the game starts or when spawned // Called when the game starts or when spawned
UFUNCTION(Blueprintable, BlueprintCallable)
virtual void BeginPlay() override; virtual void BeginPlay() override;
public: public: