Ejemplo n.º 1
0
    void FixedUpdate()
    {
        bool    infront  = false;
        Vector2 position = (Vector2)gameObject.transform.position;

        Vector2 right = Vector2.right * raycastLengthRight;

        Debug.DrawRay(transform.position, right, Color.green);
        RaycastHit2D hitFront = Physics2D.Raycast(position, right, raycastLengthRight, ~playerMovement.mask.value);

        if (hitFront.collider != null)
        {
            infront = true;
        }
        if (infront)
        {
            //Debug.Log(hitFront.collider.gameObject.tag);
            if (obj != hitFront.collider.gameObject)
            {
                if (hitFront.collider.gameObject.tag == "obstacle" || hitFront.collider.gameObject.tag == "deadplayer")
                {
                    mLastCollidedObstacle = hitFront.collider.gameObject;

                    RandomShake.randomShake.PlaySinShake();
                    Instantiate(hitEffect,
                                new Vector3(hitFront.point.x, hitFront.point.y, hitEffect.transform.position.z),
                                hitEffect.transform.rotation);
                    obj = hitFront.collider.gameObject;

                    if (powerUps.currentPowerUp != PlayerPowerups.PowerUp.smash)
                    {
                        LevelSounds.inst.playHit(gameObject.transform.position);
                    }
                }
            }

            if (powerUps.currentPowerUp == PlayerPowerups.PowerUp.smash)
            {
                //Debug.Log("obstacle1");
                if (hitFront.collider.gameObject.tag == "obstacle")
                {
                    //Debug.Log("obstacle2");
                    GameObject    itemGenerator = GameObject.Find("ItemGenerator");
                    GenerateItems igScript      = itemGenerator.GetComponent <GenerateItems>();
                    igScript.smashRock(hitFront.collider.gameObject);

                    if (LevelTypeManager.currentLevel == LevelTypeManager.Level.flappyBird)
                    {
                        Instantiate(plankEffect,
                                    new Vector3(hitFront.point.x, hitFront.point.y, hitEffect.transform.position.z),
                                    plankEffect.transform.rotation);
                    }
                    else
                    {
                        Instantiate(rockEffect,
                                    new Vector3(hitFront.point.x, hitFront.point.y, hitEffect.transform.position.z),
                                    rockEffect.transform.rotation);
                    }
                    obj = hitFront.collider.gameObject;
                    playerMovement.animationBoard.Hit();
                    //PowerupSounds.inst.playSmash();
                    LevelSounds.inst.playPowerup(transform.position);
                    powerUps.decrementCharges();
                }
            }
        }
    }