Ejemplo n.º 1
0
        private IEnumerator TryAssignPlayer()
        {
            while (modelDataManager == null)
            {
                UnityModelDataManager[] mdms = FindObjectsOfType <UnityModelDataManager>();

                foreach (UnityModelDataManager item in mdms)
                {
                    if (item.userID == 0)
                    {
                        modelDataManager = item;
                        //// TODO: this is just a workaround.
                        //// vive implementation has no "UnityPharusFootTracking"
                        //if (modelDataManager.GetComponent<UnityPharusFootTracking>() != null) {
                        //    playerNumber = modelDataManager.userID = (int)modelDataManager.GetComponent<UnityPharusFootTracking>().TrackID;
                        //}
                        //else if (modelDataManager.GetComponent<UnityViveTracking>() !=  null) {
                        //    playerNumber = modelDataManager.GetComponent<UnityViveTracking>().GetID();
                        //}

                        playerNumber = modelDataManager.GetComponent <IMikaTrackedEntity>().GetID();

                        item.userID = ID;

                        modelDataManager.AddProvider(headData);
                        modelDataManager.SubscribeReceiver(this);
                        break;
                    }
                }

                yield return(new WaitForSeconds(0.333f));
            }
        }
Ejemplo n.º 2
0
        public void AssignModelDataManager(UnityModelDataManager mdm)
        {
            // forget old manager
            if (modelDataManager != null)
            {
                modelDataManager.RemoveProvider(headData);
                modelDataManager.UnsubscribeReseiver(this);
            }

            // assign new manager
            modelDataManager = mdm;
            if (mdm == null)
            {
                return;
            }
            modelDataManager.AddProvider(headData);
            modelDataManager.SubscribeReceiver(this);
            playerNumber = modelDataManager.GetComponent <IMikaTrackedEntity>().GetID();
        }