Exemple #1
0
    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;
        }
    }