using UnityEngine;
namespace Unity.MLAgents.Sensors
{
///
/// A SensorComponent that creates a .
///
[AddComponentMenu("ML Agents/Buffer Sensor", (int)MenuGroup.Sensors)]
public class BufferSensorComponent : SensorComponent
{
///
/// This is how many floats each entities will be represented with. This number
/// is fixed and all entities must have the same representation.
///
public int ObservableSize;
///
/// This is the maximum number of entities the `BufferSensor` will be able to
/// collect.
///
public int MaxNumObservables;
private BufferSensor m_Sensor;
///
public override ISensor CreateSensor()
{
m_Sensor = new BufferSensor(MaxNumObservables, ObservableSize);
return m_Sensor;
}
///
public override int[] GetObservationShape()
{
return new[] { MaxNumObservables, ObservableSize };
}
///
/// Appends an observation to the buffer. If the buffer is full (maximum number
/// of observation is reached) the observation will be ignored. the length of
/// the provided observation array must be equal to the observation size of
/// the buffer sensor.
///
/// The float array observation
public void AppendObservation(float[] obs)
{
m_Sensor.AppendObservation(obs);
}
}
}