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(); } } } }