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; } } }