Example #1
0
    public GameObject loadCargo(Collider cargoCollider)
    {
        int area = 0;         //ToDo
        CargoSpawnController cargoSpawnController = CargoAreas[area].GetComponent <CargoSpawnController>();
        GameObject           Cargo = cargoSpawnController.loadCargo(cargoCollider);

        return(Cargo);
    }
Example #2
0
 void Update()
 {
     if (freeToLoad)
     {
         foreach (GameObject CargoArea in CargoAreas)
         {
             CargoSpawnController cargoSpawnController = CargoArea.GetComponent <CargoSpawnController>();
             if (spawnedCargoes.Count < simultaneousCargo)
             {
                 cargoSpawnController.spawnCargo(nextId);
                 nextId++;
             }
         }
     }
     if (AllGoalAreasFilled())
     {
         agent.finishCount++;
         // Debug.Log("EndEpisode - AllCargoAreasFilled");
         agent.EndingEp(10f);
     }
 }
Example #3
0
    public void ResetArea()
    {
        float unclampedRatio = (float)step / (float)stepSaturation;

        currentRatio = Mathf.Clamp(unclampedRatio, 0f, 1f);

        // Update decision requester
        agentPeriod = agent.updateDecionRequest(unclampedRatio);

        foreach (AgentSpawnArea agentSpawnArea in AgentSpawnAreas)
        {
            if (agentSpawnArea.isEasy)
            {
                agentSpawnArea.Probability =
                    agentSpawnArea.startProbability * (1 - currentRatio);
            }
            else
            {
                agentSpawnArea.Probability = agentSpawnArea.startProbability +
                                             (1 - agentSpawnArea.startProbability) * currentRatio;
            }
        }

        float          v       = Random.value;
        float          total_v = 0f;
        AgentSpawnArea chosenAgentSpawnArea = null;

        foreach (AgentSpawnArea agentSpawnArea in AgentSpawnAreas)
        {
            total_v += agentSpawnArea.Probability;
            if (v <= total_v)
            {
                chosenAgentSpawnArea = agentSpawnArea;
                break;
            }
        }

        foreach (GameObject wall in walls)
        {
            wall.SetActive(Random.value < currentRatio);
        }

        int randomSpawnPoint = Random.Range(0, chosenAgentSpawnArea.places.Count);

        agent.transform.position = chosenAgentSpawnArea.places[randomSpawnPoint].position;
        agent.transform.rotation = chosenAgentSpawnArea.places[randomSpawnPoint].rotation;
        if (!chosenAgentSpawnArea.isEasy)
        {
            agent.transform.Rotate(0f, Random.Range(-15 * currentRatio, 15 * currentRatio), 0f);
        }

        freeToLoad = true;
        foreach (GameObject GoalArea in GoalAreas)
        {
            GoalAreaController goalAreaController = GoalArea.GetComponent <GoalAreaController>();
            goalAreaController.resetArea();
        }
        foreach (GameObject CargoArea in CargoAreas)
        {
            CargoSpawnController cargoSpawnController = CargoArea.GetComponent <CargoSpawnController>();
            cargoSpawnController.resetArea();
        }
        spawnedCargoes.Clear();
    }