Je l'édite encore, pour le rendre aussi simple que possible. Je veux avoir la capacité dans mon jeu (fait dans le moteur irréel 4) pour détecter si les contrôleurs tactiles d'Oculus sont branchés ou pas. Ci-dessous vous pouvez trouver ce que j'ai fait jusqu'à présent.Comment puis-je détecter le branchement/le retrait des contrôleurs tactiles Oculus?
tout d'abord ce que je faisais jusqu'à présent: En 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;
}
J'ai ajouté ceci dans IMotionController.h:
virtual bool IsControllerConnected(int32 ControllerIndex)const
{
return false;
}
Enfin, dans MyGameMode J'ai ajouté ceci:
UFUNCTION(BlueprintCallable, Category = "Controller")
bool IsTouchConnected(int32 ControllerIndex);
TSharedPtr<IMotionController> MotionController;
et cpp
bool AMyGameMode::IsTouchConnected(int32 ControllerIndex)
{
if (!MotionController.IsValid())
{
MotionController.Get(); //this doesn't work
}
if (MotionController.IsValid())
{
return MotionController->IsControllerConnected(ControllerIndex);
}
return false;
}
Voici comment cela devrait fonctionner: 1.J'appelle la fonction AMyGameMode :: IsTouchConnected(); 2. Ensuite, il appelle IMotionController :: IsControllerConnected via le pointeur MotionController. 3. Puisqu'il est surpassé dans OculusInput, la fonction Oculus est appelée et renvoie ma cible principale.
Quel est le problème maintenant:
pointeur MotionController semble être nullptr toujours. Je n'ai aucune idée de comment le faire fonctionner.
S'il vous plaît [modifier] votre question pour afficher [le code que vous avez jusqu'à présent] (http://whathaveyoutried.com). Vous devez inclure au moins un aperçu (mais de préférence un [mcve]) du code avec lequel vous rencontrez des problèmes, puis nous pouvons essayer d'aider avec le problème spécifique. Vous devriez aussi lire [ask]. –
Je fais des commentaires parce que j'ai fait des progrès dans ce problème je pense :) –
Je pense que vous avez mal interprété les mots ** minimal ** et ** complet ** que j'ai écrit. –