- Home /
 
Strange error with UI Screen overlay - no bugs or warning, game can't be played. - GameOverText.SetActive (false);
Hello, I was hoping somebody could help with this strange issue. After following a YouTube video and adding my spin to it I keep running into an issue.
Through part of the process of elimination I have wheedled the problem script down to the following line of codes.
 GameOverText.SetActive (false);
 ButtonRestart.SetActive (false);
 
               These are linked to the UI's in the Scene.
full code...
 using UnityEngine;
 using System.Collections;
 
 //Adding this allows us to access members of the UI namespace including Text.
 using UnityEngine.UI;
 
 public class CompletePlayerController : MonoBehaviour {
 
     public float speed;                //Floating point variable to store the player's movement speed.
     public Text countText;            //Store a reference to the UI Text component which will display the number of pickups collected.
     public Text winText;            //Store a reference to the UI Text component which will display the 'You win' message.
     public GameObject GameOverText, ButtonRestart, blood;
 
 
     private Rigidbody2D rb2d;        //Store a reference to the Rigidbody2D component required to use 2D Physics.
     private int count;                //Integer to store the number of pickups collected so far.
 
 
     // Use this for initialization
     void Start()
     {
         //Get and store a reference to the Rigidbody2D component so that we can access it.
         rb2d = GetComponent<Rigidbody2D> ();
 
         //Initialize count to zero.
         count = 0;
 
         //Initialze winText to a blank string since we haven't won yet at beginning.
         winText.text = "";
 
         //Call our SetCountText function which will update the text with the current value for count.
         SetCountText ();
 
         // Game over text is off on start, button restart is off, player blood is off. 
         GameOverText.SetActive (false);
         ButtonRestart.SetActive (false);
         //blood.SetActive (false);
     }
 
     //FixedUpdate is called at a fixed interval and is independent of frame rate. Put physics code here.
     void FixedUpdate()
     {
         //Store the current horizontal input in the float moveHorizontal.
         float moveHorizontal = Input.GetAxis ("Horizontal");
 
         //Store the current vertical input in the float moveVertical.
         float moveVertical = Input.GetAxis ("Vertical");
 
         //Use the two store floats to create a new Vector2 variable movement.
         Vector2 movement = new Vector2 (moveHorizontal, moveVertical);
 
         //Call the AddForce function of our Rigidbody2D rb2d supplying movement multiplied by speed to move our player.
         rb2d.AddForce (movement * speed);
     }
 
     //OnTriggerEnter2D is called whenever this object overlaps with a trigger collider.
     void OnTriggerEnter2D(Collider2D other) 
     {
         //Check the provided Collider2D parameter other to see if it is tagged "PickUp", if it is...
         if (other.gameObject.CompareTag ("PickUp")) 
         {
             //... then set the other object we just collided with to inactive.
             other.gameObject.SetActive(false);
             
             //Add one to the current value of our count variable.
             count = count + 1;
             
             //Update the currently displayed count by calling the SetCountText function.
             SetCountText ();
         }
         
 
     }
 
     // Enemy Hurts the Player and trigger the reset button
     void OnCollisionEnter2D (Collision2D col)
     {
         if  (col.gameObject.CompareTag ("Enemy")) 
         //if (col.gameObject.tag.Equals ("Enemy")) 
             {
             GameOverText.SetActive (true);
             ButtonRestart.SetActive (true);
             //gameObject.SetActive (false);
             }
     }
 
     //This function updates the text displaying the number of objects we've collected and displays our victory message if we've collected all of them.
     void SetCountText()
     {
         //Set the text property of our our countText object to "Count: " followed by the number stored in our count variable.
         countText.text = "Count: " + count.ToString ();
 
         //Check if we've collected all 12 pickups. If we have...
         if (count >= 12)
             //... then set the text property of our winText object to "You win!"
             winText.text = "Find The Portal";
     }
 }
 
 
               If anyone know's where I could be going wrong and point out the issue that would be great .
               Comment
              
 
               
              Your answer