public void TryCloseDoor(ObstacleTowerAgent agent)
 {
     if (open && door.CompareTag("lockedDoorLever"))
     {
         CloseDoor(agent);
     }
 }
예제 #2
0
    public override void InitializeAcademy()
    {
        floor.environmentParameters = new EnvironmentParameters();

        agentComponent = FindObjectOfType <ObstacleTowerAgent>();
        GraphicsSettings.useScriptableRenderPipelineBatching = true;
    }
예제 #3
0
    public void Awake()
    {
        floor.environmentParameters = new EnvironmentParameters();

        agentComponent = FindObjectOfType <ObstacleTowerAgent>();
        GraphicsSettings.useScriptableRenderPipelineBatching = true;
        Academy.Instance.OnEnvironmentReset += ResetTower;
    }
 private void OpenDoor(ObstacleTowerAgent agent)
 {
     animator.Play(clips[0]);
     open = true;
     if (agent.denseReward)
     {
         agent.AddReward(0.1f);
     }
 }
 private void CloseDoor(ObstacleTowerAgent agent)
 {
     open = false;
     animator.Play(clips[1]);
     if (agent.denseReward)
     {
         agent.AddReward(-0.1f);
     }
 }
    public void TryOpenDoor(ObstacleTowerAgent agent)
    {
        if (!open)
        {
            if (door.CompareTag("lockedDoorRegular") ||
                door.CompareTag("lockedDoorPuzzle") ||
                door.CompareTag("lockedDoorLever"))
            {
                OpenDoor(agent);
            }

            if (door.CompareTag("lockedDoorKey"))
            {
                if (agent.keyController)
                {
                    if (agent.keyController.currentNumberOfKeys > 0)
                    {
                        agent.keyController.UseKey();
                        OpenDoor(agent);
                    }
                }
            }
        }
    }
 void Awake()
 {
     rb    = GetComponent <Rigidbody>();
     agent = FindObjectOfType <ObstacleTowerAgent>();
 }