void Update() { if (playerMovement.CurrentState == PlayerMovement.MoveState.IDLE || playerMovement.CurrentState == PlayerMovement.MoveState.MOVING) { if (InputManager.Instance.GetButtonActionDown(ButtonActionEnum.TAKE_X_OBJECT, playerIndex) == true) { if (chest.TakeObject(1, playerIndex)) { SetDefaultObjectPosition(); } } if (InputManager.Instance.GetButtonActionDown(ButtonActionEnum.TAKE_Y_OBJECT, playerIndex) == true) { if (chest.TakeObject(2, playerIndex)) { SetDefaultObjectPosition(); } } if (InputManager.Instance.GetButtonActionDown(ButtonActionEnum.TAKE_B_OBJECT, playerIndex) == true) { if (chest.TakeObject(3, playerIndex)) { SetDefaultObjectPosition(); } } if (InputManager.Instance.GetButtonActionDown(ButtonActionEnum.TRHOW_OBJECT, playerIndex) == true) { if (toyHasTaken != null) { Toy.DropResult dropResult = toyHasTaken.CanDrop(); if (dropResult == Toy.DropResult.NONE) { playerAnimator.SetBool("IsBigObject", false); if (toyHasTaken.CurrentObjectType == Toy.ObjectType.SMALL) { playerAudioSource.PlayOneShot(throwAudioClip); Vector3 throwDir = toyHasTaken.transform.position - transform.position; throwDir.Normalize(); toyHasTaken.Throw(throwDir, PlayerIndex); } else { playerAudioSource.PlayOneShot(dropAudioClip); toyHasTaken.Drop(); } if (toyHasTaken.PlayerIndex == PlayerIndex && toyHasTaken.FirstValidDrop) { Collider2D[] overlapColliders = Physics2D.OverlapPointAll(toyHasTaken.transform.position); bool canScore = false; for (int i = 0; i < overlapColliders.Length; ++i) { if (overlapColliders[i].gameObject.layer == LayerMask.NameToLayer("PlayerZone")) { if ((playerIndex == 0 && overlapColliders[i].gameObject.name == "Player1Zone" && playerIndex == toyHasTaken.originalPlayerIndex) || (playerIndex == 1 && overlapColliders[i].gameObject.name == "Player2Zone" && playerIndex == toyHasTaken.originalPlayerIndex)) { canScore = true; break; } } } if (canScore == true) { toyHasTaken.FirstValidDrop = false; GameManager.Instance.PlayerScored(playerIndex, toyHasTaken.Points); } } toyHasTaken = null; } else if (dropResult == Toy.DropResult.CHEST) { GameManager.Instance.PlayerScored(playerIndex, toyHasTaken.Points); Destroy(toyHasTaken.gameObject); toyHasTaken = null; return; } } else { if (Vector3.Distance(transform.position, bed.transform.position) < distanceToHide) { bed.GetComponent <Collider2D>().enabled = false; transform.position = bed.transform.position; isHidden = true; playerMovement.Hide(bed, bed.GetComponent <BedWakeUpZone>().WakeUpZone); } else { GameObject[] objects; objects = GameObject.FindGameObjectsWithTag("Toy"); Toy objectToPickUp = null; Vector3 newDistance = new Vector3(10, 10, 10); foreach (GameObject Object in objects) { Vector3 distance; distance = Object.transform.position - transform.position; if (distance.magnitude < newDistance.magnitude && distance.magnitude < sizeToPickUpObject) { newDistance = distance; if (!Object.gameObject.GetComponent <Toy>().IsInChest) { objectToPickUp = Object.gameObject.GetComponent <Toy>(); } } } if (objectToPickUp != null) // && objectToPickUp.FirstValidDrop == false) { if (gameObject == GameManager.Instance.PlayerOne.gameObject && GameManager.Instance.PlayerTwo.toyHasTaken == objectToPickUp) { GameManager.Instance.PlayerTwo.toyHasTaken = null; } else if (gameObject == GameManager.Instance.PlayerTwo.gameObject && GameManager.Instance.PlayerOne.toyHasTaken == objectToPickUp) { GameManager.Instance.PlayerOne.toyHasTaken = null; } objectToPickUp.Taken(playerIndex); SetDefaultObjectPosition(); } } } } } UpdateObjectPosition(); }