static List <TestAgent> GetFakeAgents(ObservableAttributeOptions observableAttributeOptions = ObservableAttributeOptions.Ignore)
        {
            var goA = new GameObject("goA");
            var bpA = goA.AddComponent <BehaviorParameters>();

            bpA.BrainParameters.VectorObservationSize        = 3;
            bpA.BrainParameters.NumStackedVectorObservations = 1;
            bpA.ObservableAttributeHandling = observableAttributeOptions;
            var agentA = goA.AddComponent <TestAgent>();

            var goB = new GameObject("goB");
            var bpB = goB.AddComponent <BehaviorParameters>();

            bpB.BrainParameters.VectorObservationSize        = 3;
            bpB.BrainParameters.NumStackedVectorObservations = 1;
            bpB.ObservableAttributeHandling = observableAttributeOptions;
            var agentB = goB.AddComponent <TestAgent>();

            var agents = new List <TestAgent> {
                agentA, agentB
            };

            foreach (var agent in agents)
            {
                agent.LazyInitialize();
            }
            agentA.collectObservationsSensor.AddObservation(new Vector3(1, 2, 3));
            agentB.collectObservationsSensor.AddObservation(new Vector3(4, 5, 6));

            var infoA = new AgentInfo
            {
                storedActions       = new ActionBuffers(null, new[] { 1, 2 }),
                discreteActionMasks = null,
            };

            var infoB = new AgentInfo
            {
                storedActions       = new ActionBuffers(null, new[] { 3, 4 }),
                discreteActionMasks = new[] { true, false, false, false, false },
            };


            agentA._Info = infoA;
            agentB._Info = infoB;
            return(agents);
        }
コード例 #2
0
        void RunAgent <T>(int numSteps, int obsSize, ObservableAttributeOptions obsOptions) where T : Agent
        {
            var agentGameObj = new GameObject();
            var agent        = agentGameObj.AddComponent <T>();

            var behaviorParams = agent.GetComponent <BehaviorParameters>();

            behaviorParams.BrainParameters.VectorObservationSize = obsSize;
            behaviorParams.ObservableAttributeHandling           = obsOptions;

            agent.LazyInitialize();
            for (var i = 0; i < numSteps; i++)
            {
                agent.RequestDecision();
                Academy.Instance.EnvironmentStep();
            }
            Object.DestroyImmediate(agentGameObj);
        }