void CreateFrame(Color32[] framePixels) { int[,] pixels = new int[framePixels.Length, numColorsInPixel]; for (int i = 0; i < framePixels.Length; i++) { Color32 pixelColor = framePixels[i]; pixels[i, 0] = pixelColor.r; pixels[i, 1] = pixelColor.g; pixels[i, 2] = pixelColor.b; } var dict = new Dictionary <string, dynamic>(); if (!agentManager.isEpisodeOver) { dict["frame"] = pixels; } else { sentEpisodeOverFrame = true; policy_con.isEpisodeOver = true; } dict["reward"] = agentManager.GetReward(); dict["done"] = agentManager.isEpisodeOver; agentManager.ResetReward(); string jsonStr = JsonConvert.SerializeObject(dict); policy_con.SendState(jsonStr); }
void SendState() { var dict = new Dictionary <string, dynamic>(); dict["state"] = stateFeatures.ToArray(); dict["reward"] = agentManager.GetReward(); dict["done"] = agentManager.isEpisodeOver; sentEpisodeOver = agentManager.isEpisodeOver; policy_con.isEpisodeOver = agentManager.isEpisodeOver; agentManager.ResetReward(); string jsonStr = JsonConvert.SerializeObject(dict); policy_con.SendState(jsonStr); agentManager.curTimeStep += 1; }