我目前正在使用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;
`