public override void CollectObservations() { // Agent only remains on the 2D XZ plane // since target direction is always assumed to be known in the general case // we also need to sample more //var sensorDataTar = cr_.getSensorsTarget(sw_id, 16, 360, agentSensorLength); float signedAngle = Vector3.SignedAngle(agent_.forward, agent_.target - agent_.pos, Vector3.up); AddVectorObs(1.0f / (agent_.target - agent_.pos).sqrMagnitude); AddVectorObs(agent_.cosineOrientation()); AddVectorObs(signedAngle > 0.0f ? 1.0f : 0.0f); var sensorDataObs = cr_.getSensorsObstacle(sw_id, obsSpaceSize, agentFOV, agentSensorLength); // for(int i = 0; i < sensorDataTar.Count; i++){ // //Debug.Log("Sensor " + i + ":" + sensorData[i]); // AddVectorObs(sensorDataTar[i]); // } for (int i = 0; i < sensorDataObs.Count; i++) { //Debug.Log("Sensor " + i + ":" + sensorData[i]); AddVectorObs(sensorDataObs[i]); } }