File size: 2,392 Bytes
05c9ac2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
namespace Unity.MLAgents.Sensors
{
    /// <summary>
    /// Identifiers for "built in" sensor types.
    /// These are only used for analytics, and should not be used for any runtime decisions.
    ///
    /// NOTE: Do not renumber these, since the values are used for analytics. Renaming is allowed though.
    /// </summary>
    public enum BuiltInSensorType
    {
        /// <summary>
        /// Default Sensor type if it cannot be determined.
        /// </summary>
        Unknown = 0,
        /// <summary>
        /// The Vector sensor used by the agent.
        /// </summary>
        VectorSensor = 1,
        /// <summary>
        /// The Stacking Sensor type. NOTE: StackingSensor actually returns the wrapped sensor's type.
        /// </summary>
        StackingSensor = 2,
        /// <summary>
        /// The RayPerception Sensor types, both 3D and 2D.
        /// </summary>
        RayPerceptionSensor = 3,
        /// <summary>
        /// The observable attribute sensor type.
        /// </summary>
        ReflectionSensor = 4,
        /// <summary>
        /// Sensors that use the Camera for observations.
        /// </summary>
        CameraSensor = 5,
        /// <summary>
        /// Sensors that use RenderTextures for observations.
        /// </summary>
        RenderTextureSensor = 6,
        /// <summary>
        /// Sensors that use buffers or tensors for observations.
        /// </summary>
        BufferSensor = 7,
        /// <summary>
        /// The sensors that observe properties of rigid bodies.
        /// </summary>
        PhysicsBodySensor = 8,
        /// <summary>
        /// The sensors that observe Match 3 boards.
        /// </summary>
        Match3Sensor = 9,
        /// <summary>
        /// Sensors that break down the world into a grid of colliders to observe an area at a pre-defined granularity.
        /// </summary>
        GridSensor = 10
    }

    /// <summary>
    /// Interface for sensors that are provided as part of ML-Agents.
    /// User-implemented sensors don't need to use this interface.
    /// </summary>
    internal interface IBuiltInSensor
    {
        /// <summary>
        /// Return the corresponding BuiltInSensorType for the sensor.
        /// </summary>
        /// <returns>A BuiltInSensorType corresponding to the sensor.</returns>
        BuiltInSensorType GetBuiltInSensorType();
    }
}