using System; using UnityEngine; namespace MLAgents.Sensor { /// /// Editor components for creating Sensors. Generally an ISensor implementation should have a corresponding /// SensorComponent to create it. /// public abstract class SensorComponent : MonoBehaviour { /// /// Create the ISensor. This is called by the Agent when it is initialized. /// /// public abstract ISensor CreateSensor(); /// /// Returns the shape of the sensor observations that will be created. /// /// public abstract int[] GetObservationShape(); public virtual bool IsVisual() { var shape = GetObservationShape(); return shape.Length == 3; } public virtual bool IsVector() { var shape = GetObservationShape(); return shape.Length == 1; } } }