繁体   English   中英

虚幻引擎4 —类型转换

[英]Unreal Engine 4 — Typecasting

我目前正在使用Unreal Engine 4开发我的第一堂课。由于广泛使用UScript,我对纯C ++中类型转换的工作方式有些困惑。 更具体地说,类/对象转换。

我目前正在MyCustomGameMode中组合一个switch语句,该语句调用MyCustomPlayerControllerVariable的MyCustomPlayerController。

我要覆盖的有问题的函数是这个函数: virtual UClass* GetDefaultPawnClassForController(AController* InController);

当前,我正在尝试使用以下代码行调用变量,我知道这是不正确的,但是我不确定为什么:

Cast<MyCustomPlayerController>(InController).MyCustomPlayerControllerVariable

我有兴趣将“ InController”强制转换为MyCustomPlayerController,但Cast<MyCustomPlayerController>(InController)似乎不起作用,我在这里做什么错?

强制转换将返回一个指向您的播放器控制器的指针,因此您需要使用->取消引用它。

const MyCustomPlayerController* MyController = Cast<MyCustomPlayerController>(InController);
check(MyCustomPlayerController);  // asserts that the cast succeeded
const float MyVariable = MyCustomPlayerController->ControllerVariable;

`

强制转换时,它总是返回一个指针。 因此,请确保在从指针访问变量之前检查强制转换是否成功。

auto MyPC = Cast<MyCustomPlayerController>(InController);
if(MyPC)
{
    MyPC->MyVariable;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM