RPG8.增加武器
1.创建一个Actor的c++类
2.创建武器WeaponBase的子类,给玩家的武器
3.进入WeaponBase,只留下构造函数,并且将bCanEventTick改为false,增加组件。
#pragma once#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "WeaponBase.generated.h"class UBoxComponent;UCLASS()
class ARPG_GRIVITY_API AWeaponBase : public AActor
{GENERATED_BODY()public: AWeaponBase();UBoxComponent* GetWeaponCollisionBox() const { return WeaponCollisionBox; }protected:UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Weapon")UStaticMeshComponent* WeaponMesh;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Weapon")UBoxComponent* WeaponCollisionBox;};
#include "Items/Weapon/WeaponBase.h"#include "Components/BoxComponent.h"AWeaponBase::AWeaponBase()
{PrimaryActorTick.bCanEverTick = true;WeaponMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("WeaponMesh"));SetRootComponent(WeaponMesh);WeaponCollisionBox = CreateDefaultSubobject<UBoxComponent>(TEXT("WeaponCollisionBox"));WeaponCollisionBox->SetupAttachment(GetRootComponent());WeaponCollisionBox->SetBoxExtent(FVector(20.f));WeaponCollisionBox->SetCollisionEnabled(ECollisionEnabled::NoCollision);
}
4.启动项目,创建XMBWeapon的蓝图类,命名为BP_WeaponBase,再创建这个蓝图类的子类,命名为BP_PlayerWeapon,用于玩家的武器