|
using System; |
|
using Unity.MLAgents.Sensors; |
|
|
|
namespace Unity.MLAgentsExamples |
|
{ |
|
|
|
|
|
|
|
|
|
public class BasicSensorComponent : SensorComponent |
|
{ |
|
public BasicController basicController; |
|
|
|
|
|
|
|
|
|
|
|
public override ISensor[] CreateSensors() |
|
{ |
|
return new ISensor[] { new BasicSensor(basicController) }; |
|
} |
|
} |
|
|
|
|
|
|
|
|
|
|
|
public class BasicSensor : SensorBase |
|
{ |
|
public BasicController basicController; |
|
|
|
public BasicSensor(BasicController controller) |
|
{ |
|
basicController = controller; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
public override void WriteObservation(float[] output) |
|
{ |
|
|
|
Array.Clear(output, 0, output.Length); |
|
output[basicController.position] = 1; |
|
} |
|
|
|
|
|
public override ObservationSpec GetObservationSpec() |
|
{ |
|
return ObservationSpec.Vector(BasicController.k_Extents); |
|
} |
|
|
|
|
|
public override string GetName() |
|
{ |
|
return "Basic"; |
|
} |
|
|
|
} |
|
} |
|
|