void OnApplicationQuit()
 {
     //close connect from device
     Debug.Log("Nolo debug:Application quit");
     NoloVR_Playform.InitPlayform().DisconnectDevice();
     NoloVR_Controller.Remove();
 }
示例#2
0
        public void Update()
        {
            if (Time.frameCount != preFrame)
            {
                preFrame            = Time.frameCount;
                preControllerStates = controllerStates;
                if (NoloVR_Playform.InitPlayform().GetPlayformError() == NoloError.None)
                {
                    controllerStates = NoloVR_Plugins.GetControllerStates(index);
                    trackingStatus   = NoloVR_Plugins.GetTrackingStatus(index);
                    if (isTurnAround)
                    {
                        if (NoloVR_Controller.recPosition == Vector3.zero)
                        {
                            NoloVR_Controller.recPosition = NoloVR_Plugins.GetPose(0).pos;
                        }
                        pose = NoloVR_Plugins.GetPose(index);
                        //pose.rot *= new Quaternion(0, 1, 0, 0);
                        Vector3 rot = pose.rot.eulerAngles;
                        rot       += new Vector3(0, 180, 0);
                        pose.rot   = Quaternion.Euler(rot);
                        pose.pos.x = NoloVR_Controller.recPosition.x * 2 - pose.pos.x;
                        pose.pos.z = NoloVR_Controller.recPosition.z * 2 - pose.pos.z;

                        return;
                    }
                    NoloVR_Controller.recPosition = Vector3.zero;
                    pose = NoloVR_Plugins.GetPose(index);
                }
            }
        }
示例#3
0
    void Update()
    {
        if (NoloVR_Playform.GetInstance().GetPlayformError() != NoloError.None)
        {
            return;
        }
        if (showTrackingBoundary == false)
        {
            return;
        }
        var pose = NoloVR_Controller.GetDevice(NoloDeviceType.BaseStation).GetPose();

        transform.localPosition = pose.pos;
        transform.localRotation = pose.rot;

        for (int i = 0; i < NoloVR_System.GetInstance().objects.Length; i++)
        {
            if (Mathf.Abs(NoloVR_System.GetInstance().objects[i].transform.localPosition.x) > Mathf.Abs(transform.position.z - NoloVR_System.GetInstance().objects[i].transform.localPosition.z) ||
                Mathf.Abs(NoloVR_System.GetInstance().objects[i].transform.localPosition.y - transform.position.y) > Mathf.Abs(transform.position.z - NoloVR_System.GetInstance().objects[i].transform.localPosition.z + 0.1f))
            {
                NOLO_Events.Send(NOLO_Events.EventsType.TrackingOutofRange);
                break;
            }
            else
            {
                NOLO_Events.Send(NOLO_Events.EventsType.TrackingInRange);
            }
        }
    }
示例#4
0
 //HapticPulse  parameter must be in 0~100
 public void TriggerHapticPulse(int intensity)
 {
     if (NoloVR_Playform.GetInstance().GetPlayformError() == NoloError.None)
     {
         NoloVR_Playform.GetInstance().TriggerHapticPulse(index, intensity);
     }
 }
示例#5
0
 public void Update()
 {
     if (Time.frameCount != preFrame)
     {
         preFrame            = Time.frameCount;
         preControllerStates = controllerStates;
         if (NoloVR_Playform.GetInstance().GetPlayformError() == NoloError.None && NoloVR_Playform.GetInstance().GetAuthentication())
         {
             controllerStates = NoloVR_Plugins.GetControllerStates(index);
             if (isTurnAround)
             {
                 if (NoloVR_Controller.recPosition == Vector3.zero)
                 {
                     NoloVR_Controller.recPosition = NoloVR_Plugins.GetPose(0).pos;
                 }
                 pose = NoloVR_Plugins.GetPose(index);
                 var rot = pose.rot.eulerAngles;
                 rot               += new Vector3(0, 180, 0);
                 pose.rot           = Quaternion.Euler(rot);
                 pose.pos.x         = NoloVR_Controller.recPosition.x * 2 - pose.pos.x;
                 pose.pos.z         = NoloVR_Controller.recPosition.z * 2 - pose.pos.z;
                 pose.vecVelocity.x = -pose.vecVelocity.x;
                 pose.vecVelocity.z = -pose.vecVelocity.z;
                 return;
             }
             NoloVR_Controller.recPosition = Vector3.zero;
             pose = NoloVR_Plugins.GetPose(index);
         }
     }
 }
示例#6
0
 private void Update()
 {
     if (NoloVR_Playform.GetInstance().GetPlayformError() != NoloError.None)
     {
         return;
     }
     UpdatePose();
 }
 void Update()
 {
     if (NoloVR_Playform.InitPlayform().GetPlayformError() != NoloError.None)
     {
         return;
     }
     //更新位置
     UpdatePose();
 }
示例#8
0
#pragma warning disable IDE0051 // 删除未使用的私有成员
    private void Update()
#pragma warning restore IDE0051 // 删除未使用的私有成员
    {
        if (NoloVR_Playform.GetInstance().GetPlayformError() != NoloError.None)
        {
            return;
        }
        UpdatePose();
    }
    void Awake()
    {
        instance = this;
        objects  = GameObject.FindObjectsOfType <NoloVR_TrackedDevice>();
        GameObject androidCallBack = new GameObject("USB Host Peripherals");

        androidCallBack.AddComponent <NoloVR_AndroidCallBack>();
        NoloVR_Playform.InitPlayform().SetHmdTrackingCenter(NoloVR_Utils.GetHmdTrackingCenter(vrPlayform));
        NoloVR_Controller.Listen();
    }
示例#10
0
    public static NoloVR_Playform GetInstance()
    {
        if (instance == null)
        {
#if UNITY_STANDALONE_WIN || UNITY_EDITOR
            instance = new NoloVR_WinPlayform();
#elif UNITY_ANDROID
            instance = new NoloVR_AndroidPlayform();
#else
            instance = new NoloVR_OtherPlayform();
#endif
        }
        return(instance);
    }
示例#11
0
    /// <summary>
    /// Android USB connect or dicconnect callback message
    /// </summary>
    /// <param name="msg">"usb 设备断开":usb device been pulled out callback,"usb 设备接入":usb device plug in phone callback</param>
    public void usbDeviceState(string msg)
    {
        switch (msg)
        {
        case "NOLO Devices Disconnected":
            NoloVR_Playform.InitPlayform().DisConnectedCallBack();
            break;

        case "NOLO Devices Reconnected":
            NoloVR_Playform.InitPlayform().ReconnectDeviceCallBack();
            break;

        default:
            break;
        }
    }
示例#12
0
 public void Update()
 {
     if (Time.frameCount != preFrame)
     {
         preFrame            = Time.frameCount;
         preControllerStates = controllerStates;
         if (NoloVR_Playform.GetInstance().GetPlayformError() == NoloError.None && NoloVR_Playform.GetInstance().GetAuthentication())
         {
             controllerStates = NoloVR_Plugins.GetControllerStates(index);
             electricity      = NoloVR_Plugins.GetElectricity(index);
             connectStatus    = NoloVR_Plugins.GetNoloConnectStatus(index);
             float yaw = real_yaw * 57.3f;
             pose = NoloVR_Plugins.GetPose(index);
             if (index == 0)
             {
                 //pose.pos += pose.rot * new Vector3(0, 0.08f, 0.062f);
                 pose.rot = Quaternion.Euler(new Vector3(0, -yaw, 0));
                 //pose.pos -= pose.rot * new Vector3(0, 0.08f, 0.062f);
             }
             if (isTurnAround)
             {
                 if (NoloVR_Controller.recPosition == Vector3.zero)
                 {
                     NoloVR_Controller.recPosition = NoloVR_Plugins.GetPose(0).pos;
                 }
                 var rot = pose.rot.eulerAngles;
                 rot     += new Vector3(0, 180 + yaw, 0);
                 pose.rot = Quaternion.Euler(rot);
                 Vector3 revec = Quaternion.Euler(new Vector3(0, 180 + yaw, 0)) * pose.pos + NoloVR_Controller.recPosition;
                 pose.pos.x         = revec.x;
                 pose.pos.z         = revec.z;
                 pose.vecVelocity.x = -pose.vecVelocity.x;
                 pose.vecVelocity.z = -pose.vecVelocity.z;
                 return;
             }
         }
         if (NoloVR_System.GetInstance().realTrackDevices != 3 && NoloVR_System.GetInstance().realTrackDevices != 6)
         {
             NoloVR_System.GetInstance().realTrackDevices = NoloVR_Plugins.GetTrackModel();
         }
     }
 }
    void Update()
    {
        if (NoloVR_Playform.InitPlayform().GetPlayformError() != NoloError.None)
        {
            return;
        }

        transform.localPosition = new Vector3(0, -NoloVR_Plugins.GetHmdInitPosition().y, 0);
        //y - play ground height
        for (int i = 0; i < NoloVR_Manager.GetInstance().objects.Length; i++)
        {
            if (Mathf.Abs(NoloVR_Manager.GetInstance().objects[i].transform.localPosition.x) > Mathf.Abs(NoloVR_Manager.GetInstance().objects[i].transform.localPosition.z) ||
                Mathf.Abs(NoloVR_Manager.GetInstance().objects[i].transform.localPosition.y - transform.position.y) > Mathf.Abs(NoloVR_Manager.GetInstance().objects[i].transform.localPosition.z) + 0.1f)
            {
                NOLO_Events.Send(NOLO_Events.EventsType.TrackingOutofRange);
                break;
            }
            else
            {
                NOLO_Events.Send(NOLO_Events.EventsType.TrackingInRange);
            }
        }
    }
示例#14
0
 void Update()
 {
     //automatic connect the usb device
     if (automaticConnection)
     {
         if (NoloVR_Playform.InitPlayform().GetPlayformError() != NoloError.None)
         {
             if (spacingFrame < 200)
             {
                 spacingFrame++;
             }
             else
             {
                 ConnectionNOLO();
                 spacingFrame = 0;
             }
         }
     }
     if (turnAroundButtonType != TurnAroundButtonType.Null)
     {
         TurnAroundEventsMonitor();
     }
     Recenter();
 }
示例#15
0
 void OnApplicationQuit()
 {
     //close connect from device
     Debug.Log("Nolo debug:Application quit");
     NoloVR_Playform.GetInstance().DisconnectDevice();
 }
示例#16
0
 void Start()
 {
     NoloVR_Playform.GetInstance().Authentication(appKey);
     NoloVR_Playform.GetInstance().SetHmdTrackingCenter((int)VRPlayform);
 }
示例#17
0
 private void Start()
 {
     NoloVR_Playform.GetInstance().Authentication(appKey);
 }
示例#18
0
 void ConnectionNOLO(params object[] args)
 {
     NoloVR_Playform.InitPlayform().ConnectDevice();
 }