示例#1
0
    public void UnpossessEnemy()
    {
        isBeingPossessed = false;
        ////Se desactiva el control del enemigo, se activa el jugador y se indica que es el ActualPlayer; se le coloca en la posicion del enemigo y se eliminan las colisiones entre ambos
        UnpossessEnemySetComponents();

        UnpossessSetPlayersInGameManager();

        if (!smokeThrowPart.isPlaying) //PLACEHOLDER
        {
            smokeThrowPart.Play();
        }

        gameObject.layer = 9; ////Al ser desposeído vuelve a tener layer de Enemy

        if (this_EnemyActiveAbility != null)
        {
            this_EnemyActiveAbility.EraseCurrentAbility(this_EnemyShootingScript); //// VER el método en ActiveAbility      !!!!!
        }


        this_EnemyControl_MovementController.controlSpeedX = 0;
        this_EnemyControl_MovementController.controlSpeedY = 0;
        thisEnemyRB.velocity = Vector2.zero;  ////Se elimina toda velocidad del RB y se aplica una fuerza contraria a la velocidad en la que se estaba moviendo en el último momento

        thisEnemyRB.AddForce(InputManager.Instance.RotationInput() * m_despossessForceMangitude, ForceMode2D.Impulse);

        StartCoroutine(StunEnemy()); ////Se inicia el Stun.

        UnpossessEnemyEffects();
    }