Exemple #1
0
    public virtual void UpdatePlayerPosition(PharusTransmission.TrackRecord trackRecord)
    {
        foreach (ATrackingEntity aPlayer in _playerList)
        {
            if (aPlayer.TrackID == trackRecord.trackID)
            {
                aPlayer.AbsolutePosition             = new Vector2(trackRecord.currentPos.x, trackRecord.currentPos.y);
                aPlayer.NextExpectedAbsolutePosition = new Vector2(trackRecord.expectPos.x, trackRecord.expectPos.y);
                aPlayer.RelativePosition             = new Vector2(trackRecord.relPos.x, trackRecord.relPos.y);
                aPlayer.Orientation = new Vector2(trackRecord.orientation.x, trackRecord.orientation.y);
                aPlayer.Speed       = trackRecord.speed;
                // use AddToVector2List() instead of ToVector2List() as it is more performant
                aPlayer.Echoes.Clear();
                trackRecord.echoes.AddToVector2List(aPlayer.Echoes);
                aPlayer.SetPosition(UnityPharusManager.GetScreenPositionFromRelativePosition(trackRecord.relPos));
                aPlayer.SetPosition(TrackingAdapter.GetScreenPositionFromRelativePosition(trackRecord.relPos.x, trackRecord.relPos.y));
                return;
            }
        }

        if (_addUnknownPlayerOnUpdate)
        {
            AddPlayer(trackRecord);
        }
    }
    public void AddPlayer(PharusTransmission.TrackRecord trackRecord)
    {
        //		Vector2 position = UnityPharusManager.GetScreenPositionFromRelativePosition(trackRecord.relPos);
        Vector2         position = TrackingAdapter.GetScreenPositionFromRelativePosition(trackRecord.relPos.x, trackRecord.relPos.y);
        ATrackingEntity aPlayer  = (GameObject.Instantiate(_playerPrefabArray[idx], new Vector3(position.x, position.y, 0), Quaternion.identity) as GameObject).GetComponent <ATrackingEntity>();

        aPlayer.TrackID                      = trackRecord.trackID;
        aPlayer.AbsolutePosition             = new Vector2(trackRecord.currentPos.x, trackRecord.currentPos.y);
        aPlayer.NextExpectedAbsolutePosition = new Vector2(trackRecord.expectPos.x, trackRecord.expectPos.y);
        aPlayer.RelativePosition             = new Vector2(trackRecord.relPos.x, trackRecord.relPos.y);
        aPlayer.Orientation                  = new Vector2(trackRecord.orientation.x, trackRecord.orientation.y);
        aPlayer.Speed = trackRecord.speed;
        aPlayer.Echoes.Clear();
        trackRecord.echoes.AddToVector2List(aPlayer.Echoes);

        aPlayer.gameObject.name = string.Format("PharusPlayer_{0}", aPlayer.TrackID);

        _playerList.Add(aPlayer);

        _playerList.Add(aPlayer);

        if (idx < _playerPrefabArray.Length - 1)
        {
            idx++;
        }
        else
        {
            idx = 0;
        }
    }
    public virtual void AddPlayer(TUIO.TuioContainer theTuioContainer)
    {
//		Vector2 position = UnityTuioManager.GetScreenPositionFromRelativePosition (theTuioContainer.Position);
        Vector2         position = TrackingAdapter.GetScreenPositionFromRelativePosition(theTuioContainer.Position.X, theTuioContainer.Position.Y);
        ATrackingEntity aPlayer  = (GameObject.Instantiate(_playerPrefab, new Vector3(position.x, position.y, 0), Quaternion.identity) as GameObject).GetComponent <ATrackingEntity>();

        aPlayer.TrackID          = theTuioContainer.SessionID;
        aPlayer.RelativePosition = new Vector2(theTuioContainer.Position.X, theTuioContainer.Position.Y);

        aPlayer.gameObject.name = string.Format("TuioPlayer_{0}", aPlayer.TrackID);

        _playerList.Add(aPlayer);
    }
Exemple #4
0
    public virtual void UpdatePlayerPosition(TUIO.TuioContainer theTuioContainer)
    {
        foreach (ATrackingEntity player in _playerList)
        {
            if (player.TrackID.Equals(theTuioContainer.SessionID))
            {
//				Vector2 position = UnityTuioManager.GetScreenPositionFromRelativePosition (theTuioContainer.Position);
                Vector2 position = TrackingAdapter.GetScreenPositionFromRelativePosition(theTuioContainer.Position.X, theTuioContainer.Position.Y);
                player.SetPosition(position);
                player.RelativePosition = new Vector2(theTuioContainer.Position.X, theTuioContainer.Position.Y);
                return;
            }
        }

        if (_addUnknownPlayerOnUpdate)
        {
            AddPlayer(theTuioContainer);
        }
    }
Exemple #5
0
        private IEnumerator InitInstance()
        {
            m_initialized = true;

            Application.runInBackground = true;

            if (m_pharusSettings.CheckServerReconnectIntervall > 0)
            {
                StartCoroutine(CheckServerAlive(m_pharusSettings.CheckServerReconnectIntervall));
            }

            if (m_persistent)
            {
                GameObject.DontDestroyOnLoad(this.gameObject);
            }

            // start: load config file
            yield return(StartCoroutine(LoadConfigXML()));

//			Debug.Log ("UnityPharusManager config loaded, continue InitInstance");
            if (m_unityPharusXMLConfig != null)
            {
                string configTrackLinkEnabled = null;
                string configProtocol         = null;
                string configTCPIP            = null;
                string configTCPPort          = null;
                string configUDPMulticastIP   = null;
                string configUDPPort          = null;
                string targetResolutionX      = null;
                string targetResolutionY      = null;
                string stageX = null;
                string stageY = null;
                for (int i = 0; i < m_unityPharusXMLConfig.ConfigNodes.Length; i++)
                {
                    switch (m_unityPharusXMLConfig.ConfigNodes[i].Name)
                    {
                    case "enabled":
                        configTrackLinkEnabled = m_unityPharusXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "protocol":
                        configProtocol = m_unityPharusXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "tcp-ip":
                        configTCPIP = m_unityPharusXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "tcp-port":
                        configTCPPort = m_unityPharusXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "udp-multicast-ip":
                        configUDPMulticastIP = m_unityPharusXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "udp-port":
                        configUDPPort = m_unityPharusXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "targetResolutionX":
                        targetResolutionX = m_unityPharusXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "targetResolutionY":
                        targetResolutionY = m_unityPharusXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "stageX":
                        stageX = m_unityPharusXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "stageY":
                        stageY = m_unityPharusXMLConfig.ConfigNodes[i].Value;
                        break;

                    default:
                        break;
                    }
                }

                bool configTracklinkBool;
                if (configTrackLinkEnabled != null && Boolean.TryParse(configTrackLinkEnabled, out configTracklinkBool))
                {
                    m_pharusSettings.TracklinkEnabled = configTracklinkBool;
                    Debug.Log(string.Format("XML config: TrackLink enabled: {0}", m_pharusSettings.TracklinkEnabled));
                }
                else
                {
                    Debug.Log(string.Format("XML config: invalid TrackLink enabled config. Using settings from prefab instead: TrackLink enabled: {0}", m_pharusSettings.TracklinkEnabled));
                }

                if (configProtocol != null)
                {
                    configProtocol = configProtocol.ToUpper();
                    switch (configProtocol)
                    {
                    case "UDP":
                        int configUDPPortInt;
                        if (configUDPMulticastIP != null &&
                            configUDPPort != null && int.TryParse(configUDPPort, out configUDPPortInt))
                        {
                            m_pharusSettings.Protocol = PharusSettings.EProtocolType.UDP;
                            m_pharusSettings.UDP_Multicast_IP_Address = configUDPMulticastIP;
                            m_pharusSettings.UDP_Port = configUDPPortInt;
                            Debug.Log(string.Format("XML config: using UDP: {0}:{1}", configUDPMulticastIP, configUDPPort));
                        }
                        else
                        {
                            Debug.LogWarning("XML config: invalid UDP config data");
                        }
                        break;

                    case "TCP":
                        int configTCPPortInt;
                        if (configTCPIP != null &&
                            configTCPPort != null && int.TryParse(configTCPPort, out configTCPPortInt))
                        {
                            m_pharusSettings.Protocol       = PharusSettings.EProtocolType.TCP;
                            m_pharusSettings.TCP_IP_Address = configTCPIP;
                            m_pharusSettings.TCP_Port       = configTCPPortInt;
                            Debug.Log(string.Format("XML config: using TCP: {0}:{1}", configTCPIP, configTCPPort));
                        }
                        else
                        {
                            Debug.LogWarning("XML config: invalid TCP config data");
                        }
                        break;

                    default:
                        Debug.LogWarning("XML config: invalid protocol specification");
                        break;
                    }
                }
                else
                {
                    Debug.LogWarning("XML config: invalid protocol specification");
                }

                int configResolutionIntX;
                int configResolutionIntY;
                if (targetResolutionX != null && int.TryParse(targetResolutionX, out configResolutionIntX) &&
                    targetResolutionY != null && int.TryParse(targetResolutionY, out configResolutionIntY))
                {
                    m_pharusSettings.TargetScreenWidth  = configResolutionIntX;
                    m_pharusSettings.TargetScreenHeight = configResolutionIntY;
                    Debug.Log(string.Format("XML config: new target resolution: {0}x{1}", m_pharusSettings.TargetScreenWidth, m_pharusSettings.TargetScreenHeight));
                }
                else
                {
                    Debug.LogWarning(string.Format("XML config: invalid resolution config, using resolution specified in PharusManager prefab instead: {0}x{1}", m_pharusSettings.TargetScreenWidth, m_pharusSettings.TargetScreenHeight));
                }

                float configStageFloatX;
                float configStageFloatY;
                if (stageX != null && float.TryParse(stageX, out configStageFloatX) &&
                    stageY != null && float.TryParse(stageY, out configStageFloatY))
                {
                    m_pharusSettings.StageX = configStageFloatX;
                    m_pharusSettings.StageY = configStageFloatY;
                    Debug.Log(string.Format("XML config: new stage size: {0}x{1}", m_pharusSettings.StageX, m_pharusSettings.StageY));
                }
                else
                {
                    Debug.LogWarning(string.Format("XML config: invalid stage size config, using stage size specified in PharusManager prefab instead: {0}x{1}", m_pharusSettings.StageX, m_pharusSettings.StageY));
                }
            }
            else
            {
                Debug.Log(string.Format("no config xml file found in resources: using default pharus settings ({0})", m_pharusSettings.Protocol.ToString()));
            }
            // end: load config file


            if (!m_pharusSettings.TracklinkEnabled)
            {
                Debug.Log("Disable and Destroy UnityPharusManager");
                this.enabled = false;
                Destroy(this);
                yield break;
            }

            if (m_pharusSettings.Protocol == PharusSettings.EProtocolType.TCP)
            {
                m_listener = UnityPharusListener.NewUnityPharusListenerTCP(m_pharusSettings.TCP_IP_Address, m_pharusSettings.TCP_Port);
            }
            else if (m_pharusSettings.Protocol == PharusSettings.EProtocolType.UDP)
            {
                m_listener = UnityPharusListener.NewUnityPharusListenerUDP(m_pharusSettings.UDP_Multicast_IP_Address, m_pharusSettings.UDP_Port);
            }
            else
            {
                Debug.LogError("Invalid pharus settings!");
                yield break;
            }
            m_eventProcessor = new UnityPharusEventProcessor(m_listener);


            if (OnTrackingInitialized != null)
            {
                OnTrackingInitialized(this, new EventArgs());
            }

            Screen.SetResolution(m_pharusSettings.TargetScreenWidth, m_pharusSettings.TargetScreenHeight, true);

            TrackingAdapter.InjectTrackingManager(m_instance);

            UpdateDebugGUI();
        }
 public TrackingController()
 {
     TrackingAdapter = new TrackingAdapter();
 }
        private IEnumerator InitInstance()
        {
            m_initialized = true;

            Application.runInBackground = true;

            if (m_persistent)
            {
                GameObject.DontDestroyOnLoad(this.gameObject);
            }

            // start: load config file
            yield return(StartCoroutine(LoadConfigXML()));

            //			Debug.Log ("UnityTuioManager config loaded, continue InitInstance");
            if (m_unityTuioXMLConfig != null)
            {
                string configTrackingEnabled = null;
                string configUDPPort         = null;
                string targetResolutionX     = null;
                string targetResolutionY     = null;
                string stageX = null;
                string stageY = null;
                for (int i = 0; i < m_unityTuioXMLConfig.ConfigNodes.Length; i++)
                {
                    switch (m_unityTuioXMLConfig.ConfigNodes[i].Name)
                    {
                    case "enabled":
                        configTrackingEnabled = m_unityTuioXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "udp-port":
                        configUDPPort = m_unityTuioXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "targetResolutionX":
                        targetResolutionX = m_unityTuioXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "targetResolutionY":
                        targetResolutionY = m_unityTuioXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "stageX":
                        stageX = m_unityTuioXMLConfig.ConfigNodes[i].Value;
                        break;

                    case "stageY":
                        stageY = m_unityTuioXMLConfig.ConfigNodes[i].Value;
                        break;

                    default:
                        break;
                    }
                }

                bool configTrackingEnabledBool;
                if (configTrackingEnabled != null && Boolean.TryParse(configTrackingEnabled, out configTrackingEnabledBool))
                {
                    m_tuioSettings.TrackingEnabled = configTrackingEnabledBool;
                    //Debug.Log(string.Format("XML config: TUIO tracking enabled: {0}", m_tuioSettings.TrackingEnabled));
                }
                else
                {
                    //Debug.Log(string.Format("XML config: invalid TUIO enabled config. Using settings from prefab instead: TUIO tracking enabled: {0}", m_tuioSettings.TrackingEnabled));
                }

                int configUDPPortInt;
                if (configUDPPort != null && int.TryParse(configUDPPort, out configUDPPortInt))
                {
                    m_tuioSettings.UDP_Port = configUDPPortInt;
                    //Debug.Log(string.Format("XML config: TUIO using UDP Port: {0}", configUDPPort));
                }
                else
                {
                    //Debug.LogWarning("XML config: invalid TUIO Port config");
                }

                int configResolutionIntX;
                int configResolutionIntY;
                if (targetResolutionX != null && int.TryParse(targetResolutionX, out configResolutionIntX) &&
                    targetResolutionY != null && int.TryParse(targetResolutionY, out configResolutionIntY))
                {
                    m_tuioSettings.TargetFloorWidth  = configResolutionIntX;
                    m_tuioSettings.TargetFloorHeight = configResolutionIntY;
                    //Debug.Log(string.Format("XML config: new target resolution: {0}x{1}", m_tuioSettings.TargetFloorWidth, m_tuioSettings.TargetFloorHeight));
                }
                else
                {
                    //Debug.LogWarning(string.Format("XML config: invalid resolution config, using resolution specified in TuioManager prefab instead: {0}x{1}", m_tuioSettings.TargetFloorWidth, m_tuioSettings.TargetFloorHeight));
                }

                float configStageFloatX;
                float configStageFloatY;
                if (stageX != null && float.TryParse(stageX, out configStageFloatX) &&
                    stageY != null && float.TryParse(stageY, out configStageFloatY))
                {
                    m_tuioSettings.StageX = configStageFloatX;
                    m_tuioSettings.StageY = configStageFloatY;
                    //Debug.Log(string.Format("XML config: new stage size: {0}x{1}", m_tuioSettings.StageX, m_tuioSettings.StageY));
                }
                else
                {
                    //Debug.LogWarning(string.Format("XML config: invalid stage size config, using stage size specified in TuioManager prefab instead: {0}x{1}", m_tuioSettings.StageX, m_tuioSettings.StageY));
                }
            }
            else
            {
                Debug.Log("no config xml file found in resources: using default TUIO settings");
            }
            // end: load config file

            if (!m_tuioSettings.TrackingEnabled)
            {
                Debug.Log("Disable and Destroy UnityTuioManager");
                this.enabled = false;
                Destroy(this);
                yield break;
            }
            m_listener       = new UnityTuioListener(m_tuioSettings.UDP_Port);
            m_eventProcessor = new UnityTuioEventProcessor(m_listener);


            if (OnTrackingInitialized != null)
            {
                OnTrackingInitialized(this, new EventArgs());
            }

            TrackingAdapter.InjectTrackingManager(m_instance);

            UpdateDebugGUI();
        }
Exemple #8
0
 /// <summary>
 /// Initializes new instance of the <see cref="DockableBase"/> class.
 /// </summary>
 protected DockableBase()
 {
     _trackingAdapter = new TrackingAdapter();
 }
Exemple #9
0
 public TrackingController()
 {
     TrackingAdapter = new TrackingAdapter();
 }