Esempio n. 1
0
    void OnCollisionEnter2D(Collision2D target)
    {
        // Get Standing Groud Type
        GroundScript groundScriptComponent = target.gameObject.GetComponent <GroundScript>();

        standingGroundType = groundScriptComponent.groundType;

        rigidBody2DComponent.velocity = Vector2.zero;
        currentPlayerState            = PlayerState.Standing;
        transform.SetParent(target.gameObject.transform);
        GetPreviousPositionOfParent();
        if (initialCollide == false)
        {
            if (groundScriptComponent.GetStepped() == false)
            {
                groundScriptComponent.Stepped();
                GameObject.Find("_ScoreManager").GetComponent <ScoreManagerScript>().AddScore();
            }

            GameObject.Find("_AudioManager").GetComponent <AudioManagerScript>().PlayCoinSound();
            StartCoroutine(target.gameObject.GetComponent <GroundScript>().LandingEffect());
            GameObject landingEffect = Instantiate(landingEffectPrefab, transform.position, Quaternion.identity);
            Destroy(landingEffect, 0.1f);
        }
        else
        {
            initialCollide = false;
        }
    }
    void OnCollisionEnter2D(Collision2D target)
    {
        GroundScript groundScriptComponent = target.gameObject.GetComponent <GroundScript>();

        if (groundScriptComponent == null)
        {
            return;
        }

        if (transform.position.y <= target.transform.position.y + 1)
        {
            return;
        }

        SetPositionIntoParentBound(target.transform);
        // Get Standing Groud Type
        standingGroundType = groundScriptComponent.groundType;

        rigidBody2DComponent.velocity     = Vector2.zero;
        rigidBody2DComponent.gravityScale = 0;
        currentPlayerState = PlayerState.Standing;
        animatorComponent.SetBool("Jumping", false);
        transform.SetParent(target.gameObject.transform);

        GetPreviousPositionOfParent();
        if (initialCollide == false)
        {
            if (groundScriptComponent.GetStepped() == false)
            {
                // if (groundScriptComponent.groundType == GroundScript.GroundType.Shoe) { jsGM.AddScore(true); Destroy(groundScriptComponent.transform.GetChild(0).gameObject);  }
                // if (groundScriptComponent.groundType == GroundScript.GroundType.Shoe) { jsGM.AddScore(true); }
                //  else jsGM.AddScore();
                jsGM.AddScore();
                groundScriptComponent.Stepped();
                GameObject landingEffect = Instantiate(landingEffectPrefab, transform.position, Quaternion.identity);
                Destroy(landingEffect, 0.2f);

                // play circle burst
                landingEffectPrefab2.Play();
            }

            StartCoroutine(target.gameObject.GetComponent <GroundScript>().LandingEffect());
        }
        else
        {
            initialCollide = false;
        }
    }