对于UE4和C ++来说我都是新手,所以也许我的问题有点愚蠢,但是如果我的自定义AMainCharacter类继承自ACharacter,而我的自定义AMainPlayerController继承自APlayerController,我如何获得UCameraComponent?实际上,我需要的只是CameraLocation和CameraTransform。因此,仅获取CameraLocation及其FTransform也适合我,有什么建议吗?
通过我尝试浏览Unreal文档的方式,找到了APlayerCameraManager类,但是我也无法连接它。
非常感谢您的帮助
答案 0 :(得分:0)
这取决于您定义相机组件的位置?是C ++还是蓝图?您在哪里附上的?我建议多学习一些有关如何使用C ++创建组件的信息。
如果您使用C ++创建并附加了Component,则您将拥有一个变量,例如PlayerCamera。
因此,我假设您已将相机组件添加到蓝图中。要访问该摄像机,您必须按类别获取actor组件并搜索所需的组件。
TArray<UCameraComponent> CameraComps;
GetComponents<UCameraComponent>(CameraComps);
现在,CameraComps
阵列可以容纳您的相机组件。
这不仅比用c ++创建组件并将其附加还要复杂。
这是一个如何做的教程。
https://docs.unrealengine.com/en-US/Programming/Tutorials/PlayerCamera/1/index.html
答案 1 :(得分:0)
稍作修正:
class ClientInfoController implements FactoryInterface
{
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
$clientMapper = $container->get(ClientMapper::class);
// Orders are unnecessary
$resultSetPrototype = $clientMapper->getTableGateway()->getResultSetPrototype();
$resultSetPrototype->getHydrator()->detach(ClientsOrdersHydrator::class);
return $aggregateHydrator;
}
}
class ClientOrdersController implements FactoryInterface
{
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
$clientMapper = $container->get(ClientMapper::class);
// Orders are unnecessary
$resultSetPrototype = $clientMapper->getTableGateway()->getResultSetPrototype();
$resultSetPrototype->getHydrator()->detach(ClientsAddressHydrator::class);
$resultSetPrototype->getHydrator()->detach(ClientsPreferencesHydrator::class);
$resultSetPrototype->getHydrator()->detach(ClientsContactsHydrator::class);
return $aggregateHydrator;
}
}
这是UCameraComponent的指针数组。