namespace Oculus.Platform.Samples.VrBoardGame
|
|
{
|
|
using UnityEngine;
|
|
using Oculus.Platform;
|
|
using Oculus.Platform.Models;
|
|
|
|
// Top level class for initializing the Oculus Platform SDK. It also performs
|
|
// and entitlement check and returns information about the logged-in user.
|
|
public class PlatformManager : MonoBehaviour
|
|
{
|
|
private static PlatformManager s_instance;
|
|
|
|
// my Application-scoped Oculus ID
|
|
private ulong m_myID;
|
|
|
|
// my Oculus user name
|
|
private string m_myOculusID;
|
|
|
|
#region Initialization and Shutdown
|
|
|
|
void Awake()
|
|
{
|
|
// make sure only one instance of this manager ever exists
|
|
if (s_instance != null)
|
|
{
|
|
Destroy(gameObject);
|
|
return;
|
|
}
|
|
|
|
s_instance = this;
|
|
DontDestroyOnLoad(gameObject);
|
|
|
|
Core.Initialize();
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
// First thing we should do is perform an entitlement check to make sure
|
|
// we successfully connected to the Oculus Platform Service.
|
|
Entitlements.IsUserEntitledToApplication().OnComplete(IsEntitledCallback);
|
|
}
|
|
|
|
void IsEntitledCallback(Message msg)
|
|
{
|
|
if (msg.IsError)
|
|
{
|
|
TerminateWithError(msg);
|
|
return;
|
|
}
|
|
|
|
// Next get the identity of the user that launched the Application.
|
|
Users.GetLoggedInUser().OnComplete(GetLoggedInUserCallback);
|
|
}
|
|
|
|
void GetLoggedInUserCallback(Message<User> msg)
|
|
{
|
|
if (msg.IsError)
|
|
{
|
|
TerminateWithError(msg);
|
|
return;
|
|
}
|
|
|
|
m_myID = msg.Data.ID;
|
|
m_myOculusID = msg.Data.OculusID;
|
|
|
|
Debug.Log(" I am " + m_myOculusID);
|
|
}
|
|
|
|
// In this example, for most errors, we terminate the Application. A full App would do
|
|
// something more graceful.
|
|
public static void TerminateWithError(Message msg)
|
|
{
|
|
Debug.Log("Error: " + msg.GetError().Message);
|
|
UnityEngine.Application.Quit();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Properties
|
|
|
|
public static ulong MyID
|
|
{
|
|
get
|
|
{
|
|
if (s_instance != null)
|
|
{
|
|
return s_instance.m_myID;
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static string MyOculusID
|
|
{
|
|
get
|
|
{
|
|
if (s_instance != null && s_instance.m_myOculusID != null)
|
|
{
|
|
return s_instance.m_myOculusID;
|
|
}
|
|
else
|
|
{
|
|
return string.Empty;
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|