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; } } }