cancel
Showing results for 
Search instead for 
Did you mean: 

Technical Review Test Results - VRC.Mobile.Input.1 fail

Bushwalker222
Explorer

Hi All,

I'm one failure away from launching my first OG/GearVR VR app and have got myself completely stumped 😞


********************

Overview



If the app cannot be used
without an external input device (e.g. gamepad or 3DOF controller), and no
input device is detected when the app starts up, the app must warn the user to
connect the necessary device.



Result



The application does not warn
Gear VR users that an external input device is required when one is not
connected.

********************


I'm using Unity and also an asset called Easy Input for everything controller related. I asked the developer of Easy Input but unfortunately the only reply was on the subject was: 

'You can query
EasyInputHelper.touchdevice 


I found some code online that appears to be in the same area for the GearVR

// returns true if right-handed controller connected
OVRInput.IsControllerConnected(OVRInput.Controller.RTrackedRemote);

Is there anything I can add to this to code make the query and display a message to the user if there's no left hand or right hand controller detected? The app needs a controller to work as I couldn't use the gaze option as a backup without seriously spoiling the experience. The Oculus Go works fine as it incorporates the controller automatically.

Thanks for your time.


Andrew



6 REPLIES 6

Bushwalker222
Explorer
No answer at all?   😞

Bushwalker222
Explorer
 :'( 

FocusVRGames
Adventurer
Hi Andrew

I haven't tested on Gear / Go, however IsControllerConnected also has a RTouch option which I did test and it returned True when it was connected and false when it wasn't so can't see why the RTrackedRemote wouldn't return false if not connected.

If I'm reading your post correctly you want to display a message when the tracked remote isn't detected? I quickly wrote and tested the below which worked so should achieve what you need.

On your first screen
Create a "Missing Remote Message" GameObject and give it some text for the "Game requires you to connect a controller"
Create another Game object and attach the below script
Assign your "Missing Remote Message" GameObject to noRemoteMessage



public class CheckForRemote : MonoBehaviour
{
public GameObject noRemoteMessage;

// Start is called before the first frame update
void Start()
{
noRemoteMessage.SetActive(false);
}

// Update is called once per frame
void Update()
{
if (OVRInput.IsControllerConnected(OVRInput.Controller.RTrackedRemote))
{
noRemoteMessage.SetActive(false);
Destroy(gameObject); //Found Controller so can destroy this object to stop constant checking
}
else
{
noRemoteMessage.SetActive(true);
}
}
}

When the application runs it will check for a remote if it doesn't find one it will pop up the message game object, as soon as it finds a remote it will hide the message and remove the checking script.

Hope that's what you needed.

Best of luck
Mike


Bushwalker222
Explorer

And the celebration fireworks are going off downunder  🙂

Thanks very much Mike for putting me out of my misery with that controller check. Monday morning I was actually going to remove support for the Gear VR as I'd completely had enough which would have been a shame as the app looks clearer and more vivid colours on the Samsung phone compared to the Oculus Go screen.

I followed exactly what you said and now have a nice popup screen with text and a controller graphic when the gear VR has no controller attached and a no show screen if it is attached.

App just resubmitted and will wait to see how it goes with the Oculus store guru's.

Final code below just in case anyone else out there stumbles across this post in search of a solution to the following test fail.

Test
VRC.Mobile.Input.1

Overview
If the app cannot be used without an external input device (e.g. gamepad or 3DOF controller), and no input device is detected when the app starts up, the app must warn the user to connect the necessary device.

Result
The application does not warn Gear VR users that an external input device is required when one is not connected


The using parts at the top I just got from another CS file so you may not need all four of them
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class CheckForRemote : MonoBehaviour
{
public GameObject noRemoteMessage;

// Start is called before the first frame update
void Start()
{
noRemoteMessage.SetActive(false);
}

// Update is called once per frame
void Update()
{
if (OVRInput.IsControllerConnected(OVRInput.Controller.RTrackedRemote))
{
noRemoteMessage.SetActive(false);
Destroy(gameObject); //Found Controller so can destroy this object to stop constant checking
}
else
{
noRemoteMessage.SetActive(true);
}
}
}

Mike, please PM me your PayPal account address if you have one and I'll gladly transfer some cash to get you a 6 pack of Kronenbourg or your preferred beer / wine.

Really appreciate the help.


Andrew

FocusVRGames
Adventurer
Hi Andrew

Glad you got it working and can now launch with Gear VR support.

I don't have PayPal but no need, I'm happy to help out where I can. As an indie developer I know how frustrating things can be sometimes when your on your own.

Best of luck with the technical review and the game

Mike

Bushwalker222
Explorer
Yes... certainly frustrating at times. My app is one of those 360 VR experiences of Crater Lake in Oregon with popup info windows and animations. Bit of a steep learning curve for me but worth it.

I'll be getting a Rift S in a couple of months so will check out your Time Crystal and Tranquility apps. 

Thanks again and greatly appreciated.

Andrew