// 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; } } } } }
// 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; } } } } }
// Private private void Awake() { instance = this; }