/// <summary> /// Creates the RayPerceptionSensor. /// </summary> /// <param name="name">The name of the sensor.</param> /// <param name="rayInput">The inputs for the sensor.</param> public RayPerceptionSensor(string name, RayPerceptionInput rayInput) { m_Name = name; m_RayPerceptionInput = rayInput; SetNumObservations(rayInput.OutputSize()); m_DebugLastFrameCount = Time.frameCount; m_RayPerceptionOutput = new RayPerceptionOutput(); }
/// <summary> /// Evaluates the raycasts to be used as part of an observation of an agent. /// </summary> /// <param name="input">Input defining the rays that will be cast.</param> /// <returns>Output struct containing the raycast results.</returns> public static RayPerceptionOutput Perceive(RayPerceptionInput input) { RayPerceptionOutput output = new RayPerceptionOutput(); output.RayOutputs = new RayPerceptionOutput.RayOutput[input.Angles.Count]; for (var rayIndex = 0; rayIndex < input.Angles.Count; rayIndex++) { output.RayOutputs[rayIndex] = PerceiveSingleRay(input, rayIndex); } return(output); }