日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

UE5/C++ 基于GAS创建攻击伤害 5.1.1准备碰撞体

發布時間:2024/1/8 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UE5/C++ 基于GAS创建攻击伤害 5.1.1准备碰撞体 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.準備碰撞體基類

#pragma once#include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "HitCollision.generated.h"/*** */UCLASS(BlueprintType, Blueprintable) class SIMPLECOMBAT_API AHitCollision : public AActor {GENERATED_BODY()UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "HitCollision", meta = (AllowPrivateAccess = "true"))class USceneComponent* HitCollisionRootComponent; public:AHitCollision(const FObjectInitializer& ObjectInitializer);virtual UPrimitiveComponent* GetHitDamage();protected:// Called when the game starts or when spawnedvirtual void BeginPlay() override;// Called every framevirtual void Tick(float DeltaTime) override; };

進行實現

#include "Hit/Core/HitCollision.h"AHitCollision::AHitCollision(const FObjectInitializer& ObjectInitializer) :Super(ObjectInitializer) {//創建根組件HitCollisionRootComponent = CreateDefaultSubobject<USceneComponent>(TEXT("CollisionRootComponent"));RootComponent = HitCollisionRootComponent; }UPrimitiveComponent* AHitCollision::GetHitDamage() {return NULL; }void AHitCollision::BeginPlay() {Super::BeginPlay(); }void AHitCollision::Tick(float DeltaTime) {Super::Tick(DeltaTime); }

2.繼承至基類,創建盒體碰撞體

#pragma once#include "CoreMinimal.h" #include "Hit/Core/HitCollision.h" #include "HitBox.generated.h"/*** */ UCLASS(BlueprintType, Blueprintable) class SIMPLECOMBAT_API AHitBoxCollision : public AHitCollision {GENERATED_BODY()UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "BaseAttrubute", meta = (AllowPrivateAccess = "true"))class UBoxComponent* HitDamage; public:AHitBoxCollision(const FObjectInitializer& ObjectInitializer);virtual UPrimitiveComponent* GetHitDamage();//設置盒子尺寸void SetBoxExtent(const FVector& InNewBoxExtent); protected:// Called when the game starts or when spawnedvirtual void BeginPlay() override;// Called every framevirtual void Tick(float DeltaTime) override; };

進行實現

#include "Hit/ComboSkillHitBox.h" #include "Components/BoxComponent.h"AHitBoxCollision::AHitBoxCollision(const FObjectInitializer& ObjectInitializer):Super(ObjectInitializer) {HitDamage = CreateDefaultSubobject<UBoxComponent>(TEXT("HitDamage"));HitDamage->SetupAttachment(RootComponent); }UPrimitiveComponent* AHitBoxCollision::GetHitDamage() {return HitDamage; }void AHitBoxCollision::SetBoxExtent(const FVector& InNewBoxExtent) {HitDamage->SetBoxExtent(InNewBoxExtent); }void AHitBoxCollision::BeginPlay() {Super::BeginPlay(); }void AHitBoxCollision::Tick(float DeltaTime) {Super::Tick(DeltaTime); }

3.繼承至基類,創建膠囊體碰撞體

#pragma once#include "CoreMinimal.h" #include "Hit/Core/HitCollision.h" #include "HitCapsule.generated.h" /*** */ UCLASS(BlueprintType, Blueprintable) class SIMPLECOMBAT_API AHitCapsuleCollision : public AHitCollision {GENERATED_BODY()UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "BaseAttrubute", meta = (AllowPrivateAccess = "true"))class UCapsuleComponent*HitDamage; public:AHitCapsuleCollision(const FObjectInitializer& ObjectInitializer);virtual UPrimitiveComponent* GetHitDamage();void SetCapsuleHalfHeight(float InNewCapsuleHalfHeight);void SetCapsuleRadius(float InNewCapsuleRadius); protected:// Called when the game starts or when spawnedvirtual void BeginPlay() override;// Called every framevirtual void Tick(float DeltaTime) override; };

進行實現

#include "Hit/ComboSkillHitCapsule.h" #include "Components/CapsuleComponent.h"AHitCapsuleCollision::AHitCapsuleCollision(const FObjectInitializer& ObjectInitializer) :Super(ObjectInitializer) {HitDamage = CreateDefaultSubobject<UCapsuleComponent>(TEXT("HitDamage"));HitDamage->SetupAttachment(RootComponent); }UPrimitiveComponent* AHitCapsuleCollision::GetHitDamage() {return HitDamage; }void AHitCapsuleCollision::SetCapsuleHalfHeight(float InNewCapsuleHalfHeight) {//設置膠囊體半高HitDamage->SetCapsuleHalfHeight(InNewCapsuleHalfHeight); }void AHitCapsuleCollision::SetCapsuleRadius(float InNewCapsuleRadius) {//設置膠囊體半徑HitDamage->SetCapsuleRadius(InNewCapsuleRadius); }void AHitCapsuleCollision::BeginPlay() {Super::BeginPlay(); }void AHitCapsuleCollision::Tick(float DeltaTime) {Super::Tick(DeltaTime); }

4.繼承至基類,創建球體碰撞體

總結

以上是生活随笔為你收集整理的UE5/C++ 基于GAS创建攻击伤害 5.1.1准备碰撞体的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。