ppo-Pyramids-Training / Project /Assets /ML-Agents /TestScenes /TestCompressedTexture /TestTextureSensor.cs
| using UnityEngine; | |
| using Unity.MLAgents.Sensors; | |
| public class TestTextureSensor : ISensor | |
| { | |
| Texture2D m_Texture; | |
| string m_Name; | |
| private ObservationSpec m_ObservationSpec; | |
| SensorCompressionType m_CompressionType; | |
| /// <summary> | |
| /// The compression type used by the sensor. | |
| /// </summary> | |
| public SensorCompressionType CompressionType | |
| { | |
| get { return m_CompressionType; } | |
| set { m_CompressionType = value; } | |
| } | |
| public TestTextureSensor( | |
| Texture2D texture, string name, SensorCompressionType compressionType) | |
| { | |
| m_Texture = texture; | |
| var width = texture.width; | |
| var height = texture.height; | |
| m_Name = name; | |
| m_ObservationSpec = ObservationSpec.Visual(height, width, 3); | |
| m_CompressionType = compressionType; | |
| } | |
| /// <inheritdoc/> | |
| public string GetName() | |
| { | |
| return m_Name; | |
| } | |
| /// <inheritdoc/> | |
| public ObservationSpec GetObservationSpec() | |
| { | |
| return m_ObservationSpec; | |
| } | |
| /// <inheritdoc/> | |
| public byte[] GetCompressedObservation() | |
| { | |
| var compressed = m_Texture.EncodeToPNG(); | |
| return compressed; | |
| } | |
| /// <inheritdoc/> | |
| public int Write(ObservationWriter writer) | |
| { | |
| var numWritten = writer.WriteTexture(m_Texture, false); | |
| return numWritten; | |
| } | |
| /// <inheritdoc/> | |
| public void Update() { } | |
| /// <inheritdoc/> | |
| public void Reset() { } | |
| /// <inheritdoc/> | |
| public CompressionSpec GetCompressionSpec() | |
| { | |
| return CompressionSpec.Default(); | |
| } | |
| } | |