// Updates
        void Update()
        {
            // Update receive time
            currentTime = Time.time;

            // Frame control
            if (Controller.Mode == PlayMode.Stream)
            {
                if (UDPReceiver.IsServerActive())
                {
                    currentFrameTime += Time.deltaTime;
                    if (currentFrameTime * frameSpeedMultiplier > UDPReceiver.AvgFrameTime)   // New frame
                    {
                        if (frameQueue.Count > 0)
                        {
                            currentFrame     = frameQueue.Dequeue();
                            currentFrameTime = 0f; // -= UDPReceiver.AvgFrameTime / frameSpeedMultiplier;
                            SceneController.instance.PushNewFrameData(currentFrame, UDPReceiver.AvgFrameTime);
                            //Debug.Log(Time.time - currentFrame.receivedTime);
                            if (Time.time - currentFrame.receivedTime > thresholdFrameDelay)   // play too slow
                            {
                                frameSpeedMultiplier *= latePenaltyMultiplier;
                            }
                        }
                        else
                        {
                            frameSpeedMultiplier = 1f;
                        }
                    }
                }
            }
        }
Esempio n. 2
0
 // Update is called once per frame
 void Update()
 {
     foreach (AnimData data in frameQueue)
     {
         if (data.receivedTime <= 0f)
         {
             data.receivedTime = Time.time;
         }
     }
     if (Controller.Mode == PlayMode.Stream)
     {
         if (UDPReceiver.IsServerActive())
         {
             currentFrameTime += Time.deltaTime;
             if (currentFrameTime * frameSpeedMultiplier > UDPReceiver.AvgFrameTime)
             {
                 if (frameQueue.Count > 0)
                 {
                     currentFrame     = frameQueue.Dequeue();
                     currentFrameTime = 0f;
                     DataNew          = true;
                     //Debug.Log(Time.time - currentFrame.receivedTime);
                     if (Time.time - currentFrame.receivedTime > thresholdFrameDelay)   // play too slow
                     {
                         frameSpeedMultiplier *= latePenaltyMultiplier;
                     }
                 }
                 else
                 {
                     frameSpeedMultiplier = 1f;
                 }
             }
         }
     }
 }
Esempio n. 3
0
 // Private
 private void Awake()
 {
     instance = this;
 }