码迷,mamicode.com
首页 > 编程语言 > 详细

UE4 与 C++

时间:2019-12-16 14:50:21      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:ntc   page   fun   ue4   editor   component   --   amp   print   

 1 #pragma once
 2 
 3 #include "CoreMinimal.h"
 4 #include "GameFramework/Character.h"
 5 #include "BaseCharacter.generated.h"
 6 
 7 UCLASS(Blueprintable)
 8 class TWINSTICKSHOOTER_API ABaseCharacter : public ACharacter
 9 {
10     GENERATED_BODY()
11 public:
12     //添加生命
13     UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Base Character")
14         float Health = 100;
15     //是否死亡
16     UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Base Character")
17         bool isDead = false;
18     //死亡计算函数
19     virtual void CalculateDead();
20     //生命计算函数
21     UFUNCTION(BlueprintCallable, Category = "Base Character")
22         virtual void CalculateHealth(float delta);
23 #if WITH_EDITOR
24     //修改属性
25     virtual void PostEditChangeProperty(FPropertyChangedEvent &PropertyChangedEvent) override;
26 #endif
27 public:
28     // Sets default values for this character‘s properties
29     ABaseCharacter();
30 
31 protected:
32     // Called when the game starts or when spawned
33     virtual void BeginPlay() override;
34 
35 public:    
36     // Called every frame
37     virtual void Tick(float DeltaTime) override;
38 
39     // Called to bind functionality to input
40     virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
41 
42 };

-----------------------------------------------------------------------------------------------------------------
 1 // Fill out your copyright notice in the Description page of Project Settings.
 2 
 3 
 4 #include "BaseCharacter.h"
 5 
 6 // Sets default values
 7 ABaseCharacter::ABaseCharacter()
 8 {
 9      // Set this character to call Tick() every frame.  You can turn this off to improve performance if you don‘t need it.
10     PrimaryActorTick.bCanEverTick = true;
11 
12 }
13 
14 // Called when the game starts or when spawned
15 void ABaseCharacter::BeginPlay()
16 {
17     Super::BeginPlay();
18     
19 }
20 
21 // Called every frame
22 void ABaseCharacter::Tick(float DeltaTime)
23 {
24     Super::Tick(DeltaTime);
25 
26 }
27 
28 // Called to bind functionality to input
29 void ABaseCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
30 {
31     Super::SetupPlayerInputComponent(PlayerInputComponent);
32 
33 }
34 
35 void ABaseCharacter::CalculateHealth(float delta)
36 {
37     Health += delta;
38     CalculateDead();
39 }
40 void ABaseCharacter::CalculateDead()
41 {
42     if (Health <= 0)
43         isDead = true;
44     else
45         isDead = false;
46 
47  }
48 
49 
50 #if WITH_EDITOR
51 void ABaseCharacter::PostEditChangeProperty(FPropertyChangedEvent &PropertyChangedEvent)
52 {
53     isDead = false;
54     Health = 100;
55     Super::PostEditChangeProperty(PropertyChangedEvent);
56     CalculateDead();
57 }
58 #endif // WITH_EDITOR

 

 






UE4 与 C++

标签:ntc   page   fun   ue4   editor   component   --   amp   print   

原文地址:https://www.cnblogs.com/yangshengjing/p/12049002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!