基于C++代码的UE4学习(五十一)——在PlayerController中进行控制

 

在Pawn和Character里都带有父类的SetupPlayerInputComponent方法进行控制器的操纵。

更优化的写法是将这些内容写在PlayerController中去。

不同的是,要重写SetupInputComponent方法。且需要用到固定的指针InputComponent,并将其CreateDefaultSubobject。

用自定义的指针,且不把InputComponent指针初始化,都会导致程序崩溃。

 

创建一个PlayerController。

 

 

代码如下:

 

 

 1 // Fill out your copyright notice in the Description page of Project Settings.
 2 
 3 #pragma once
 4 
 5 #include "CoreMinimal.h"
 6 #include "GameFramework/PlayerController.h"
 7 #include "MyPlayerController.generated.h"
 8 
 9 /**
10  * 
11  */
12 UCLASS()
13 class TESTS_API AMyPlayerController : public APlayerController
14 {
15     GENERATED_BODY()
16 public:
17     AMyPlayerController();
18     int number;
19     virtual void SetupInputComponent() override;
20     void Test();
21 
22 };
23 
24 
25 
26 
27 // Fill out your copyright notice in the Description page of Project Settings.
28 
29 
30 #include "MyPlayerController.h"
31 
32 AMyPlayerController::AMyPlayerController() {
33     number = 0;
34     InputComponent = CreateDefaultSubobject<UInputComponent>(TEXT("inputs"));
35 }
36 
37 
38 
39 void AMyPlayerController::SetupInputComponent()
40 {
41     InputComponent->BindAction("move", IE_Pressed, this, &AMyPlayerController::Test);
42 }
43 
44 void AMyPlayerController::Test()
45 {
46 
47     number++;
48     UE_LOG(LogTemp, Warning, TEXT("Number is %d"), number);
49 }

 

 

效果如下:

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值