【发布时间】:2018-02-08 02:13:11
【问题描述】:
我正在再次对其进行编辑,以使其尽可能简单。我想在我的游戏中(在虚幻引擎 4 中制作)能够检测是否插入了 Oculus 触摸控制器。您可以在下面找到我到目前为止所做的事情。
首先我到目前为止做了什么: 在 Oculus Input.cpp 中
bool FOculusInput::IsControllerConnected(int32 ControllerIndex) const
{
for (const FOculusTouchControllerPair& ControllerPair : ControllerPairs)
{
if (ControllerPair.UnrealControllerIndex == ControllerIndex)
{
const FOculusTouchControllerState& ControllerState = ControllerPair.ControllerStates[(int32)EControllerHand::Left];
if (ControllerState.bIsConnected)
{
return true;
}
return false;
}
return false;
}
return false;
}
然后我在 IMotionController.h 中添加了这个:
virtual bool IsControllerConnected(int32 ControllerIndex)const
{
return false;
}
最后我在 MyGameMode 中添加了这个:
UFUNCTION(BlueprintCallable, Category = "Controller")
bool IsTouchConnected(int32 ControllerIndex);
TSharedPtr<IMotionController> MotionController;
在.cpp中
bool AMyGameMode::IsTouchConnected(int32 ControllerIndex)
{
if (!MotionController.IsValid())
{
MotionController.Get(); //this doesn't work
}
if (MotionController.IsValid())
{
return MotionController->IsControllerConnected(ControllerIndex);
}
return false;
}
所以它应该是这样工作的: 1.我正在调用函数 AMyGameMode::IsTouchConnected(); 2.然后通过 MotionController 指针调用 IMotionController::IsControllerConnected。 3.然后由于在OculusInput中被覆盖,Oculus Function被调用并返回我的主要目标。
现在出了什么问题:
MotionController 指针似乎始终为 nullptr。我不知道如何使它工作。
【问题讨论】:
-
请edit您的问题显示the code you have so far。您应该至少包含您遇到问题的代码的大纲(但最好是minimal reproducible example),然后我们可以尝试帮助解决具体问题。您还应该阅读How to Ask。
-
我发表评论是因为我认为我在这个问题上取得了一些进展:)
-
我认为您误读了我写的 minimal 和 complete 这两个词。
标签: c++ unreal-engine4 oculus