void FixedUpdate() { if (!ws.IsConnected) { Debug.Log("not connected:" + url); return; } if (lastSendTime + cycleTimeStepSize <= Time.time) { lastSendTime = Time.time; if (Time.time - episodeStartTime > episodeTimeLength) { TimeOver(); } if (agent.state.endEpisode) { StartNewEpisode(); } agent.UpdateState(); var packer = new MsgPack.CompiledPacker(); byte[] msg = packer.Pack(agent.state); received.Reset(); ws.Send(msg); received.WaitOne(); OnCycleUpdateAfterReceiveAction(); } }
public AIClientAsync(string _url) { url = _url; mutAgent = new Mutex(); mutAi = new Mutex(); packer = new MsgPack.CompiledPacker(); agentMessageQueue = new Queue <byte[]>(); aiMessageQueue = new Queue <byte[]>(); th = new Thread(new ThreadStart(ExecuteInForeground)); th.Start(this); }
public AIClient(string _url, MassageCB cb, Agent _agent) { url = _url; messageCallBack = cb; agent = _agent; mutAgent = new Mutex(); mutAi = new Mutex(); packer = new MsgPack.CompiledPacker(); agentMessageQueue = new Queue <byte[]>(); aiMessageQueue = new Queue <byte[]>(); th = new Thread(new ThreadStart(ExecuteInForeground)); th.Start(this); }