Beispiel #1
0
 private void DisableExtraPlayer()
 {
     if (_twoPlayers)
     {
         _aiPlayer.gameObject.SetActive(false);
         _aiPlayer.GetComponent <Collider>().enabled = false;
     }
     else
     {
         foreach (var collider in _player2.GetComponents <Collider>())
         {
             collider.enabled = false;
         }
         _player2.gameObject.SetActive(false);
     }
 }
 // Update is called once per frame
 void Update()
 {
     if (isGameOver)
     {
         return;
     }
     if (isSomethingSelected)
     {
         if (Input.GetMouseButtonDown(0))
         {
             var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
             if (Physics.Raycast(ray, out RaycastHit hit))
             {
                 if (hit.transform.gameObject.GetComponent <InteractableObject>())
                 {
                     var interactable = hit.transform.gameObject.GetComponent <InteractableObject>();
                     if (selectedPlayer is AICleaner && selectedPlayer)
                     {
                         var aiCleaner = selectedPlayer.GetComponent <AICleaner>();
                         if (!aiCleaner.isHoldingSomething)
                         {
                             aiCleaner.SetObjectToInteract(interactable);
                         }
                     }
                     selectedPlayer.MoveAgentToNewPos(interactable.transform.position);
                 }
                 else if (hit.transform.gameObject.GetComponent <GrabableObjects>())
                 {
                     var grabable = hit.transform.gameObject.GetComponent <GrabableObjects>();
                     if (selectedPlayer is AICleaner && selectedPlayer)
                     {
                         var aiCleaner = selectedPlayer.GetComponent <AICleaner>();
                         if (!aiCleaner.isHoldingSomething)
                         {
                             aiCleaner.SetObjectToGrab(grabable);
                         }
                     }
                     selectedPlayer.MoveAgentToNewPos(grabable.transform.position);
                 }
                 else if (hit.transform.gameObject.GetComponent <StorageObject>())
                 {
                     var storage = hit.transform.gameObject.GetComponent <StorageObject>();
                     if (selectedPlayer is AICleaner && selectedPlayer)
                     {
                         var aiCleaner = selectedPlayer.GetComponent <AICleaner>();
                         if (aiCleaner.isHoldingSomething)
                         {
                             aiCleaner.GoToTruck(storage);
                         }
                     }
                     selectedPlayer.MoveAgentToNewPos(storage.transform.position);
                 }
                 else
                 {
                     var hitPos = hit.point;
                     selectedPlayer.MoveAgentToNewPos(hitPos);
                 }
             }
         }
         else if (Input.GetMouseButtonDown(1))
         {
             selectedPlayer.DeselectPlayer();
             selectedPlayer = null;
         }
     }
 }