예제 #1
0
        public override void RecieveTangoRoomInfo(string data)
        {
            var dataArray = data.Split('~'); //parse data

            UnityEngine.Debug.Log("RecievedTangoInfo " + dataArray.Length);
            List <String> RoomNames = new List <string>();

            if (dataArray.Length > 1)
            {
                for (int i = 0; i < dataArray.Length; i += 2)
                {
                    TangoDatabase.TangoData T = new TangoDatabase.TangoData();
                    T.name = dataArray[i];
                    RoomNames.Add(T.name);
                    T.size = System.Int32.Parse(dataArray[i + 1]);

                    UnityEngine.Debug.Log(i + " " + T.name + " " + T.size);
                    if (!TangoDatabase.LookUpName(T.name))
                    {
                        TangoRoomStack.Push(T); //if room does not already exist, add to stack
                    }
                }
            }
            else
            {
                RoomNames.Add(" ");
            }

            TangoDatabase.CompareList(RoomNames); //delete any rooms missing
        }
예제 #2
0
        /// <summary>
        /// Creates a thread to recieve a TangoMesh based on the mesh currently at the top of the stack
        /// Sends a RPC call to the masterclient with the name of the room
        /// </summary>
        public virtual void ReceiveTangoMeshStack()
        {
            TangoDatabase.TangoData T = TangoRoomStack.Pop();

            if (!TangoDatabase.LookUpName(T.name))
            {
                _ThreadFinished = false;
                Thread Th = new Thread(() => RecieveTangoMeshThread(T));
                Th.IsBackground = true;
                Th.Start();
                threads.Add(Th);


                photonView.RPC("SendTangoMeshByName", PhotonTargets.MasterClient, GetLocalIpAddress() + "~" + (Port + 1) + "~" + T.name);
            }
        }