Beispiel #1
0
 public bool assign(RollerAgent agent)
 {
     //print("Agente counter :"+ agentCount.ToString());
     //print("agent_assigned");
     agentlist.Add(agent);
     return(true);
 }
Beispiel #2
0
 // Start is called before the first frame update
 void Start()
 {
     rollerAgent = rollerAgentObject.GetComponent <RollerAgent>();
     rollerAgent.arenaPosition = transform.position;
     rollerAgent.target1       = target1Object;
     rollerAgent.target2       = target2Object;
     rollerAgent.target3       = target3Object;
 }
    void Start()
    {
        var playerObj = GameObject.FindGameObjectWithTag("Player");

        player     = playerObj.GetComponent <RollerAgent>();
        agent      = GetComponent <NavMeshAgent>();
        enemyScore = 0;
        SetEnemyScoreText();
    }
Beispiel #4
0
    private void Start()
    {
        rollerAgentObject = Instantiate(rollerAgentPrefab,
                                        new Vector3(0, transform.position.y + 0.5f, 0),
                                        Quaternion.identity);

        rollerAgent = rollerAgentObject.GetComponent <RollerAgent>();
        rollerAgent.arenaPosition = transform.position;
        target1Object             = Instantiate(target1Prefab);
        target2Object             = Instantiate(target2Prefab);
        target3Object             = Instantiate(target3Prefab);
        rollerAgent.target1       = target1Object;
        rollerAgent.target2       = target2Object;
        rollerAgent.target3       = target3Object;
    }
Beispiel #5
0
    private void GetConfigParams()
    {
        string configString = Resources.Load <TextAsset>(configFileName).ToString();
        // string configString = System.IO.File.ReadAllText(Application.dataPath + "/Config/" + configFileName + ".json");
        ConfigJson obj = JsonUtility.FromJson <ConfigJson>(configString);

        // Read config associated with executed mode
        if (RollerAgent.IsSimulationMode())
        {
            numObstaclesArray = obj.simulation.numObstacles;
            Debug.Log("simulation");
        }
        else
        {
            numObstaclesArray = obj.training.numObstacles;
            Debug.Log("taining");
        }
    }
Beispiel #6
0
    public override void OnActionReceived(float[] vectorAction)
    {
        //base.OnActionReceived(vectorAction);
        dist_score = Vector3.Distance(transform.localPosition, target.transform.localPosition) / 142f;

        AddReward(-(1.0f / MaxStep));

        //health -= 0.01f;

        MoveAgent(vectorAction);

        if (isCollidingWithWall)
        {
            //AddReward(-0.5f );
        }

        float distanceToTarget = Vector3.Distance(this.transform.localPosition, target.localPosition);

        // Todo: Make this more scalable (e.g. use colliders)
        if (distanceToTarget < (1.42f * transform.localScale.x))
        {
            if (target.gameObject.tag == "Species1")
            {
                RollerAgent targetAgent = target.gameObject.GetComponent <RollerAgent>();
                if (targetAgent != null)
                {
                    targetAgent.Eaten();
                }
            }

            health = 100;
            AddReward(1.0f);
            EndEpisode();
        }

        // Fell off platform or starved
        if (this.transform.localPosition.y < 0)
        {
            AddReward(-1.0f);
            EndEpisode();
        }
    }
Beispiel #7
0
    void Start()
    {
        rb                     = GetComponent <Rigidbody>();
        agent                  = GetComponent <RollerAgent>();
        waypoints              = GetComponent <Waypoints>();
        distancesVector        = new float[n_scans + 4];
        distancesToWallsVector = new float[5];
        for (int i = 0; i < distancesVector.Length; i++)
        {
            distancesVector[0] = float.MaxValue;
        }
        tagLabels = new List <int>();
        hitPoints = new List <RaycastHit>();
        //prepare rotation matrices
        Quaternion q  = Quaternion.AngleAxis(-FOV, Vector3.up);
        Quaternion q2 = Quaternion.AngleAxis(FOV, Vector3.up);

        rotateM        = Matrix4x4.Rotate(q);
        rotateM2       = Matrix4x4.Rotate(q2);
        targetWaypoint = GameObject.Find("S").transform;
        dieingWaypoint = GameObject.Find("S").transform;
    }
 void OnCollisionEnter(Collision obj)
 {
     if (obj.gameObject.CompareTag("Player"))
     {
         player = obj.gameObject.GetComponent <RollerAgent>();
         var forceVec = -obj.gameObject.GetComponent <Rigidbody>().velocity.normalized * 250f;
         if (player.getScore() > getScore())
         {
             obj.gameObject.GetComponent <Rigidbody>().AddForce(-forceVec, ForceMode.Force);
             enemyScore++;
         }
         else
         {
             agent.enabled = false;
             var rigidbody = GetComponent <Rigidbody>();
             rigidbody.isKinematic = false;
             rigidbody.AddForce(forceVec, ForceMode.Force);
             Invoke("EnableNavMesh", 1F);
             enemyScore--;
         }
         SetEnemyScoreText();
     }
 }
    // Update is called once per frame
    void Update()
    {
        bool allBelow     = true;
        var  pickUpsArray = GameObject.FindGameObjectsWithTag("Pick Up");

        foreach (GameObject pickUp in pickUpsArray)
        {
            if (pickUp.transform.position.y > 0)
            {
                allBelow = false;
            }
        }

        if (allBelow)
        {
            RollerAgent     player = GameObject.FindObjectOfType <RollerAgent>();
            EnemyController enemy  = GameObject.FindObjectOfType <EnemyController>();

            if (player.getScore() > enemy.getScore())
            {
                gameOverText.text = "You Win!";
            }
            else if (player.getScore() == enemy.getScore())
            {
                gameOverText.text = "It's a Draw!";
            }
            else
            {
                gameOverText.text = "You lost...";
            }
            //Time.timeScale = 0;
        }
        else
        {
            gameOverText.text = "";
        }
    }
Beispiel #10
0
 void Start()
 {
     rg = GetComponent <RollerAgent>();
 }