End game on score

I bought a endless drop game and need it to end on score. Below is the the player controller. I’d like to keep it as a float to modify later in inspector for other levels.

using UnityEngine;
using System.Collections;

public class PlayerControl : MonoBehaviour
{
    private float i;
    [HideInInspector]
    public bool facingRight = true;            // For determining which way the player is currently facing.
    [HideInInspector]
    public bool jump = false;                // Condition for whether the player should jump.
  
  
    public GameObject BoxGUI;
    public GameObject PauseButton;
  
    public float moveForce = 365f;            // Amount of force added to move the player left and right.
    public float maxSpeed = 5f;                // The fastest the player can travel in the x axis.
    public float jumpForce = 1000f;            // Amount of force added when the player jumps.
    public AudioClip[] taunts;                // Array of clips for when the player taunts.
    public float tauntProbability = 50f;    // Chance of a taunt happening.
    public float tauntDelay = 1f;            // Delay for when the taunt should happen.
  
  
    private int tauntIndex;                    // The index of the taunts array indicating the most recent taunt.
    private Transform groundCheck;            // A position marking where to check if the player is grounded.
    private bool grounded = false;            // Whether or not the player is grounded.
    private Animator anim;                    // Reference to the player's animator component.
  
    private TrailRenderer trailrender;      //
  
    [HideInInspector]
    public bool isDeal;   // is deal ?
  
    public AudioClip[] audioClip;     //

    public GameObject Protection;     //Protection
    private bool isProtection;
  
    void Awake()
    {
        anim = GetComponent<Animator>();
      
        trailrender = GetComponent<TrailRenderer> ();
      
        Protection.SetActive (false);
        trailrender.enabled = false;                      //
      
    }
  
  
    void Update()
    {
        // The player is grounded if a linecast to the groundcheck position hits anything on the ground layer.
        //        grounded = Physics2D.Linecast(transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Ground"));
      
        // If the jump button is pressed and the player is grounded then the player should jump.
        if(Input.GetButtonDown("Jump") && grounded)
            jump = true;
    }
  
  
    void FixedUpdate ()
    {
      
      
        if(isDeal){
          
            Destroy (gameObject.collider2D);
            Destroy (gameObject.rigidbody2D);

            Protection.SetActive (false);
          
        }else{
            if(Application.isEditor || Application.isWebPlayer){
              
                // Cache the horizontal input.
                float h = Input.GetAxis("Horizontal");
              
                //            print(h);
              
                // The Speed animator parameter is set to the absolute value of the horizontal input.
                anim.SetFloat("Speed", Mathf.Abs(h));

                if(isProtection){

                    print ("isProtection");

                    if(h * rigidbody2D.velocity.x < maxSpeed)
                        // ... add a force to the player.
                        rigidbody2D.AddForce(Vector2.right * h * moveForce*3);
              
                }else{
                    if(h * rigidbody2D.velocity.x < maxSpeed)
                        // ... add a force to the player.
                        rigidbody2D.AddForce(Vector2.right * h * moveForce);
                }

                // If the player is changing direction (h has a different sign to velocity.x) or hasn't reached maxSpeed yet...

              
                // If the player's horizontal velocity is greater than the maxSpeed...
                if(Mathf.Abs(rigidbody2D.velocity.x) > maxSpeed)
                    // ... set the player's velocity to the maxSpeed in the x axis.
                    rigidbody2D.velocity = new Vector2(Mathf.Sign(rigidbody2D.velocity.x) * maxSpeed, rigidbody2D.velocity.y);
              
                // If the input is moving the player right and the player is facing left...
                if(h > 0 && !facingRight)
                    // ... flip the player.
                    Flip();
              
                // Otherwise if the input is moving the player left and the player is facing right...
                else if(h < 0 && facingRight)
                    // ... flip the player.
                    Flip();
              
            }else{
              
                if(PlayerPrefs.GetString("isGravity") == "ture"){  //判断是重力感应还是手指触摸
                  
                    anim.SetFloat("Speed", Mathf.Abs(Input.acceleration.x));

                    if(isProtection){
                      
                        if(Input.acceleration.x * rigidbody2D.velocity.x < maxSpeed)
                            // ... add a force to the player.
                            rigidbody2D.AddForce(Vector2.right * Input.acceleration.x * moveForce*3);
                      
                    }else{
                        if(Input.acceleration.x * rigidbody2D.velocity.x < maxSpeed)
                            // ... add a force to the player.
                            rigidbody2D.AddForce(Vector2.right * Input.acceleration.x * moveForce);
                    }
                  

                  
                    // If the player's horizontal velocity is greater than the maxSpeed...
                    if(Mathf.Abs(rigidbody2D.velocity.x) > maxSpeed)
                        // ... set the player's velocity to the maxSpeed in the x axis.
                        rigidbody2D.velocity = new Vector2(Mathf.Sign(rigidbody2D.velocity.x) * maxSpeed, rigidbody2D.velocity.y);
                  
                    // If the input is moving the player right and the player is facing left...
                    if(Input.acceleration.x > 0 && !facingRight)
                        // ... flip the player.
                        Flip();
                  
                    // Otherwise if the input is moving the player left and the player is facing right...
                    else if(Input.acceleration.x < 0 && facingRight)
                        // ... flip the player.
                        Flip();
                  
                }else{
                  
                    if (Input.touchCount > 0)//如果存在Touch事件
                    {
                      
                      
                      
                        if(Input.GetTouch(0).position.x > Screen.width/2){
                            if(i<0.99f){
                              
                                i += 0.1f;
                            }
                        }else{
                            if(i>-0.99f){
                              
                                i -= 0.1f;
                            }
                        }
                    }else{
                        i = 0;
                    }
                  
                    anim.SetFloat("Speed", Mathf.Abs(i));
                    // If the player is changing direction (h has a different sign to velocity.x) or hasn't reached maxSpeed yet...

                    if(isProtection){
                      
                        if(i * rigidbody2D.velocity.x < maxSpeed)
                            // ... add a force to the player.
                            rigidbody2D.AddForce(Vector2.right * i * moveForce*3);
                      
                    }else{
                        if(i * rigidbody2D.velocity.x < maxSpeed)
                            // ... add a force to the player.
                            rigidbody2D.AddForce(Vector2.right * i * moveForce);
                    }


                  
                    // If the player's horizontal velocity is greater than the maxSpeed...
                    if(Mathf.Abs(rigidbody2D.velocity.x) > maxSpeed)
                        // ... set the player's velocity to the maxSpeed in the x axis.
                        rigidbody2D.velocity = new Vector2(Mathf.Sign(rigidbody2D.velocity.x) * maxSpeed, rigidbody2D.velocity.y);
                  
                    // If the input is moving the player right and the player is facing left...
                    if(i > 0 && !facingRight)
                        // ... flip the player.
                        Flip();
                  
                    // Otherwise if the input is moving the player left and the player is facing right...
                    else if(i < 0 && facingRight)
                        // ... flip the player.
                        Flip();
                  
                }
              
              
            }
        }
      
      
      
      
      
    }
  
  
    void Flip ()
    {
        // Switch the way the player is labelled as facing.
        facingRight = !facingRight;
      
        // Multiply the player's x local scale by -1.
        Vector3 theScale = transform.localScale;
        theScale.x *= -1;
        transform.localScale = theScale;
    }
  
  
    public IEnumerator Taunt()
    {
        // Check the random chance of taunting.
        float tauntChance = Random.Range(0f, 100f);
        if(tauntChance > tauntProbability)
        {
            // Wait for tauntDelay number of seconds.
            yield return new WaitForSeconds(tauntDelay);
          
            // If there is no clip currently playing.
            if(!audio.isPlaying)
            {
                // Choose a random, but different taunt.
                tauntIndex = TauntRandom();
              
                // Play the new taunt.
                audio.clip = taunts[tauntIndex];
                audio.Play();
            }
        }
    }
  
  
    int TauntRandom()
    {
        // Choose a random index of the taunts array.
        int i = Random.Range(0, taunts.Length);
      
        // If it's the same as the previous taunt...
        if(i == tauntIndex)
            // ... try another random taunt.
            return TauntRandom();
        else
            // Otherwise return this index.
            return i;
    }
    void OnCollisionEnter2D(Collision2D coll) {
      
        if (isDeal || isProtection) {
          
        } else {
            if(coll.collider.tag == "Enemy"){
                anim.SetBool("Deal",true);
                //            print("enemy dal");
                isDeal = true;
                StartCoroutine("GameOver");
            }  
        }
      
      
    }
  
    void OnTriggerEnter2D(Collider2D collider) {
      
      
        if (isDeal) {
        } else {
            if(collider.name == "dealLine"){
                anim.SetBool("Deal",true);
                //print("enemy dal");
                isDeal = true;
                StartCoroutine("GameOver");
            }
          
            if(collider.name == "Strong(Clone)"){

                trailrender.enabled = true;                      //
                Destroy(collider.gameObject);
                StartCoroutine("trailrenderFalse");
            }
        }
    }

    IEnumerator trailrenderFalse(){
        isProtection = true;
        audio.clip = audioClip[1];
        audio.Play();

        Protection.SetActive (true);

        yield return new WaitForSeconds(10);

        isProtection = false;
        trailrender.enabled = false;  
        audio.clip = audioClip[2];
      
        audio.Play();

        Protection.SetActive (false);
      
    }
    IEnumerator GameOver(){
      
        audio.clip = audioClip[0];
        audio.loop = false;
        audio.Play();

        PauseButton.SetActive(false);
        yield return new WaitForSeconds(3);
        BoxGUI.SetActive(true);
      
    }
  
}

Here is the score script.

using UnityEngine;
using System.Collections;

public class Score : MonoBehaviour {
   

    //private int[] arr=new int[]{45,12,44,4,5};
    [HideInInspector]
    public int score;
    public GUIText scoreUI;

    // Use this for initialization
    void Start () {
   


    }
   
    // Update is called once per frame
    void Update () {
   
    }

    void OnTriggerEnter2D(Collider2D other) {
        if(other.tag == "score"){

            score++;

            if(score > PlayerPrefs.GetInt("score")){
                PlayerPrefs.SetInt("score",score);
            }
            if(scoreUI){
                scoreUI.text = "Score : " + score;
            }

   
            //transform.Translate(transform.position.x + Random.Range(-2, 2), Mathf.RoundToInt(transform.position.y - 10), 0);
        }



    }
}