void FixedUpdate() { msgDelayCount++; if (msgDelayCount % 17 == 0) { msgDelayCount = 0; if (body.GameReset() != body.RIGHT) { //这里游戏重置 InfoSend = "GameOver_"; client.SendMessage(InfoSend); Debug.Log("***********GameOver***********"); GameReset(); //环境重置 } else { InfoSend = body.GetXSpeedState().ToString() + "_" + //X轴的速度奖励 body.GetXRotationState().ToString() + "_" + //X轴的角度 body.GetZRotationState().ToString() + "_" + //Z轴的角度 lf_leg.Thigh_GetAngle().ToString() + "_" + //左前腿的大腿角度 lf_leg.Calf_GetAngle().ToString() + "_" + //左前腿的小腿角度 rf_leg.Thigh_GetAngle().ToString() + "_" + //左后腿的大腿角度 rf_leg.Calf_GetAngle().ToString() + "_" + //左后腿的小腿角度 lb_leg.Thigh_GetAngle().ToString() + "_" + //右前腿的大腿角度 lb_leg.Calf_GetAngle().ToString() + "_" + //右前腿的小腿角度 rb_leg.Thigh_GetAngle().ToString() + "_" + //右后腿的大腿角度 rb_leg.Calf_GetAngle().ToString(); //右后腿的小腿角度 client.SendMessage(InfoSend); Debug.Log(InfoSend); } } while (client.MsgReceived) { client.MsgReceived = false; string[] msg_splited = client.strMsg.Split('_'); //分离行为信息 if (msg_splited.Length == 8) { lf_leg.Thigh_RunAngle(float.Parse(msg_splited[0])); lf_leg.Calf_RunAngle(float.Parse(msg_splited[1])); rf_leg.Thigh_RunAngle(float.Parse(msg_splited[2])); rf_leg.Calf_RunAngle(float.Parse(msg_splited[3])); lb_leg.Thigh_RunAngle(float.Parse(msg_splited[4])); lb_leg.Calf_RunAngle(float.Parse(msg_splited[5])); rb_leg.Thigh_RunAngle(float.Parse(msg_splited[6])); rb_leg.Calf_RunAngle(float.Parse(msg_splited[7])); } else { GameReset(); //训练环境重置 } } }