コード例 #1
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     playerscript = collision.GetComponent <PlayerPlatformer>();
     playerscript.DestroyChildren();
     playerscript.GetComponent <Rigidbody2D>().velocity  = Vector2.zero;
     playerscript.GetComponent <Rigidbody2D>().simulated = false;
     playerscript.gravityModifier = 0;
     playerscript.animator.SetTrigger("Fall");
 }
コード例 #2
0
    private IEnumerator TravelThroughWindowAnimation(Vector3 exitPosition, Window window)
    {
        Rigidbody2D playerRB = platformerPhase.GetComponent <Rigidbody2D>();

        playerRB.bodyType = RigidbodyType2D.Kinematic;
        playerRB.velocity = ((playerRB.transform.position - exitPosition).normalized * 2f);
        if (playerRB.velocity.y < .3f)
        {
            playerRB.velocity = new Vector2(playerRB.velocity.x, 2f);
        }
        transitionChargeSFX.Play();
        yield return(new WaitForSecondsRealtime(.5f));

        transitionEffect.transform.position = playerRB.transform.position;
        transitionEffect.SetActive(true);
        playerRB.gameObject.SetActive(false);
        while (Vector3.Distance(transitionEffect.transform.position, exitPosition) > .1f)
        {
            yield return(new WaitForEndOfFrame());

            transitionEffect.transform.position += (exitPosition - transitionEffect.transform.position).normalized * .1f;
        }
        transitionEffect.SetActive(false);
        if (window)
        {
            window.Close();
            if (window.isFinal())
            {
                gameManager.ReturnToStageSelect();
            }
            else
            {
                gameManager.CallNextStage();
            }
        }
        else if (gameManager)
        {
            gameManager.CallNextStage();
        }
    }
コード例 #3
0
    private void Start()
    {
        player = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerPlatformer>();

        playerRb2d = player.GetComponent <Rigidbody2D>();
    }