private void Send(ReferenceCountedMessage m, EmulatorQueue from) { if (connected) { BufferedMessage b; b.msg = m; b.timeToRecieveOn = time.gameTime + TimeManager.FromSeconds(latency); Profiler.BeginSample("Enqueue"); foreach (var item in queues) { if (item != from) { m.Acquire(); item.messages.Enqueue(b); } } m.Release(); Profiler.EndSample(); } else { m.Release(); } }
private void Awake() { time = GetComponentInChildren <TimeManager>(); queues = new List <EmulatorQueue>(); foreach (var item in GetComponentsInChildren <NetworkScene>()) { var queue = new EmulatorQueue(this); this.queues.Add(queue); item.AddConnection(queue); } }