我正在編輯它,使其儘可能簡單。我希望在我的遊戲中有能力(用虛幻引擎4製作)來檢測Oculus Touch控制器是否插入。下面你可以找到我到目前爲止所做的。如何檢測插入/插入Oculus觸摸控制器?
,首先我做了什麼至今: 在OculusInput.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函數被調用並返回我的主要目標。
什麼現在是錯誤的:
MotionController指針似乎永遠是nullptr。我不知道如何使它工作。
請[編輯]您的問題,以顯示[你到目前爲止的代碼](http://whathaveyoutried.com)。你至少應該包括一個你遇到問題的代碼大綱(但最好是[mcve]),然後我們可以嘗試幫助解決具體問題。你還應該閱讀[問]。 –
我評論因爲我已經在這個問題上取得了一些進展,我認爲:) –
我認爲你誤讀我寫的**最小**和**完整**。 –