如何从 ACharacter/APlayerController 获取 UCameraComponent?

How do I get UCameraComponent from ACharacter/APlayerController?

我对 UE4 和 C++ 都很陌生,所以也许我的问题有点愚蠢,但是如果我有从 ACharacter 继承的自定义 AMainCharacter class 和从 APlayerController 继承的自定义 AMainPlayerController,我该如何获取 UCameraComponent?实际上我只需要 CameraLocation 和 CameraTransform。所以只获取 CameraLocation 及其 FTransform 也适合我,有什么建议吗?

顺便说一下,我尝试浏览 Unreal Documentation 并找到 APlayerCameraManager class,但我也无法连接它。

提前感谢您的帮助

这取决于你在哪里定义你的相机组件?它是在 C++ 中还是在蓝图中?你把它贴在哪里了?我建议学习更多有关如何在 C++ 中创建组件的知识。

如果您在 C++ 中创建并附加了组件,您将拥有一个变量,例如您创建的 PlayerCamera。

所以我假设您已经在蓝图中添加了相机组件。要访问该摄像机,您必须通过 class 获取演员组件并搜索您需要的组件。

TArray<UCameraComponent> CameraComps;
GetComponents<UCameraComponent>(CameraComps);

现在 CameraComps array 包含您的相机组件。

这比仅在 C++ 中创建组件并附加它更复杂。

这里有一个教程。

https://docs.unrealengine.com/en-US/Programming/Tutorials/PlayerCamera/1/index.html

稍作更正:

TArray<UCameraComponent*> CameraComps;

是UCameraComponent的指针数组。