Exemplo n.º 1
0
    // This method gets called by the Brain to collect a list of floating point numbers.
    // These numbers are added to the Observations and used by the Brain to make a Decision
    public override void CollectObservations()
    {
        float rayDistance = 55f;

        float[]  rayAngles         = { 20f, 70f, 90f, 110f, 160f, 45f, 135f, -20f, -70f, -90f, -110f, -160f, -45f, -135f };
        string[] detectableObjects = { "Player", "Unpassable" };
        AddVectorObs(rayComponent.Perceive(10f, rayAngles, detectableObjects));
    }
Exemplo n.º 2
0
    public override void CollectObservations()
    {
        float rayDistance = 40f;

        AddVectorObs(rayPer.Perceive(rayDistance, rayAngles, detectableObjects));
        AddVectorObs(transform.position.x);
        AddVectorObs(transform.position.y);
    }
Exemplo n.º 3
0
    public override void CollectObservations()
    {
        // Agent info
        AddVectorObs(transform.position.y);
        AddVectorObs(rb2D.velocity.y);

        // Environment info
        AddVectorObs(perception.Perceive(4f, angles, detectableObjects));
    }
    public override void CollectObservations()
    {
        float rayDistance = 10f;

        float[]  rayAngles         = { 90f, 80f, 70f, 60f, 50f, 40f, 30f, 20f, 10f, 0f, -10f, -20f, -30f, -40f, -50f, -60f, -70f, -80f, -90f };
        string[] detectableObjects = { "wall" };

        AddVectorObs(rayPerception.Perceive(rayDistance, rayAngles, detectableObjects));
        AddVectorObs(transform.position.y);
        AddVectorObs(rigidbody.velocity.y);
    }
Exemplo n.º 5
0
        public void TestPerception2D()
        {
            var angles = new[] { 0f, 90f, 180f };
            var tags   = new[] { "test", "test_1" };

            var             go       = new GameObject("MyGameObject");
            RayPerception2D rayPer2D = go.AddComponent <RayPerception2D>();
            var             result   = rayPer2D.Perceive(1f, angles,
                                                         tags);

            Debug.Log(result.Count);
            Assert.IsTrue(result.Count == angles.Length * (tags.Length + 2));
        }
Exemplo n.º 6
0
    public override void CollectObservations()
    {
        AddVectorObs(grounded);

        AddVectorObs(jumping);

        float rayDistance = 10f;

        float[]  rayAngles         = { 270f, 300f, 330, 0f, 30f, 60f, 90f };
        string[] detectableObjects = { "Spike" };
        AddVectorObs(rayPerception.Perceive(rayDistance, rayAngles, detectableObjects, 0f, 0f));

        AddVectorObs(minDistance);

        AddVectorObs(gameArea.GetComponent <gameArea>().groundSpeed);

        AddVectorObs(transform.position.y);

        AddVectorObs(ammo);

        AddVectorObs(shootCooldown);
    }
Exemplo n.º 7
0
    public override void CollectObservations()
    {
        float rayDistance = 40f;

        string[] detectableObjects;
        if (team == 1)
        {
            detectableObjects = detectableObjectsRed;
        }
        else
        {
            detectableObjects = detectableObjectsBlue;
        }
        AddVectorObs(rayPer.Perceive(rayDistance, rayAngles, detectableObjects));
        Vector3 localVelocity = transform.InverseTransformDirection(GetComponent <Rigidbody2D>().velocity);

        AddVectorObs(localVelocity.x);
        AddVectorObs(localVelocity.z);
        AddVectorObs(transform.position.x);
        AddVectorObs(transform.position.y);
        AddVectorObs(System.Convert.ToInt32(GetComponent <SpaceShooter_Player>().usedUltimate));
    }