private void CheckIfArrivedAtPlayer(Collision other) { // Collision Character var target = other.gameObject; if (!isArrivedAtPlayer) { // Moving Character switch (gameObject.tag) { case "Clone": // Clones try to reach the Player or a Clone of the Player if (target.CompareTag("Player")) { isArrivedAtPlayer = true; } if (target.CompareTag("Clone")) { var cloneMovement = target.GetComponent <MoveCharacterToPlayer>(); if (cloneMovement && cloneMovement.isArrivedAtPlayer) { if (_playerScript) { _playerScript.AddCloneToPlayer(gameObject); } isArrivedAtPlayer = true; } } break; case "Zombie": // Zombies try to reach the Player if (target.CompareTag("Player")) { isArrivedAtPlayer = true; } break; } } // TODO check if this makes a problem for Zombies // Set the currentMovementSpeed to zero if (isArrivedAtPlayer) { currentMovementSpeed = gameObject.CompareTag("Zombie") ? movementSpeed : 0f; } }