using UnityEngine;
using UnityEngine.Serialization;
namespace Unity.MLAgents.Sensors
{
[AddComponentMenu("ML Agents/Vector Sensor", (int)MenuGroup.Sensors)]
public class VectorSensorComponent : SensorComponent
{
///
/// Name of the generated object.
/// Note that changing this at runtime does not affect how the Agent sorts the sensors.
///
public string SensorName
{
get { return m_SensorName; }
set { m_SensorName = value; }
}
[HideInInspector, SerializeField]
private string m_SensorName = "VectorSensor";
public int ObservationSize
{
get { return m_ObservationSize; }
set { m_ObservationSize = value; }
}
[HideInInspector, SerializeField]
int m_ObservationSize;
[HideInInspector, SerializeField]
ObservationType m_ObservationType;
VectorSensor m_Sensor;
public ObservationType ObservationType
{
get { return m_ObservationType; }
set { m_ObservationType = value; }
}
///
/// Creates a VectorSensor.
///
///
public override ISensor CreateSensor()
{
m_Sensor = new VectorSensor(m_ObservationSize, m_SensorName, m_ObservationType);
return m_Sensor;
}
///
public override int[] GetObservationShape()
{
return new[] { m_ObservationSize };
}
public VectorSensor GetSensor()
{
return m_Sensor;
}
}
}