using System; using UnityEngine; namespace MLAgents { public enum SpaceType { Discrete, Continuous } /// /// Holds information about the Brain. It defines what are the inputs and outputs of the /// decision process. /// [Serializable] public class BrainParameters { /// /// If continuous : The length of the float vector that represents /// the state /// If discrete : The number of possible values the state can take /// public int vectorObservationSize = 1; [Range(1, 50)] public int numStackedVectorObservations = 1; /// /// If continuous : The length of the float vector that represents /// the action /// If discrete : The number of possible values the action can take*/ /// public int[] vectorActionSize = new[] {1}; /// The list of strings describing what the actions correpond to */ public string[] vectorActionDescriptions; /// Defines if the action is discrete or continuous public SpaceType vectorActionSpaceType = SpaceType.Discrete; /// /// Deep clones the BrainParameter object /// /// A new BrainParameter object with the same values as the original. public BrainParameters Clone() { return new BrainParameters { vectorObservationSize = vectorObservationSize, numStackedVectorObservations = numStackedVectorObservations, vectorActionSize = (int[])vectorActionSize.Clone(), vectorActionDescriptions = (string[])vectorActionDescriptions.Clone(), vectorActionSpaceType = vectorActionSpaceType }; } } }