using UnityEngine; using UnityEngine.Serialization; namespace Unity.MLAgents.Sensors { /// /// A component for 3D Ray Perception. /// [AddComponentMenu("ML Agents/Ray Perception Sensor 3D", (int)MenuGroup.Sensors)] public class RayPerceptionSensorComponent3D : RayPerceptionSensorComponentBase { [HideInInspector, SerializeField, FormerlySerializedAs("startVerticalOffset")] [Range(-10f, 10f)] [Tooltip("Ray start is offset up or down by this amount.")] float m_StartVerticalOffset; /// /// Ray start is offset up or down by this amount. /// public float StartVerticalOffset { get => m_StartVerticalOffset; set { m_StartVerticalOffset = value; UpdateSensor(); } } [HideInInspector, SerializeField, FormerlySerializedAs("endVerticalOffset")] [Range(-10f, 10f)] [Tooltip("Ray end is offset up or down by this amount.")] float m_EndVerticalOffset; /// /// Ray end is offset up or down by this amount. /// public float EndVerticalOffset { get => m_EndVerticalOffset; set { m_EndVerticalOffset = value; UpdateSensor(); } } /// public override RayPerceptionCastType GetCastType() { return RayPerceptionCastType.Cast3D; } /// public override float GetStartVerticalOffset() { return StartVerticalOffset; } /// public override float GetEndVerticalOffset() { return EndVerticalOffset; } } }