Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
13 Jun 22 - 14 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Sayden96 · Aug 01, 2021 at 07:20 PM · scripting problemsceneunity 2dload

My life counter is not updating

When I load a scene my life counter only works one time before it blocks. I don't know what's going on.

The script of the life counter:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.SceneManagement;
 using UnityEngine.UI;
 
 public class LifeManager : MonoBehaviour
 {
     public int startingLives;
     private int lifeCounter;
 
     private Text theText;
 
     public GameObject gameOverScreen;
 
 
     public PlayerController2D Player;
 
 
     public float waitAfterGameOver;
 
     // Start is called before the first frame update
     void Start()
     {
         theText = GetComponent<Text>();
 
         lifeCounter = startingLives;
 
         Player = FindObjectOfType<PlayerController2D>();
     }
 
     // Update is called once per frame
     void Update()
     {
         if(lifeCounter == 0)
         {
             gameOverScreen.SetActive(true);
             Destroy(GameObject.Find("Canvas"));
         }
 
         theText.text = "x " + lifeCounter;
         /*
         if(gameOverScreen.activeSelf)
         {
             waitAfterGameOver -= Time.deltaTime;
         }
 
         if(waitAfterGameOver < 0)
         {
             SceneManager.LoadScene("Menu");
             Destroy(GameObject.Find("CanvasPermanent"));
         }*/
     }
 
     public void GiveLife()
     {
         lifeCounter++;
     }
 
     public void TakeLife()
     {
         lifeCounter--;
     }
 }
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by alexianphilosophy · Feb 04 at 03:14 AM

The route you're taking to have a life counter is kind of roundabout. Honestly, I would just reference a text object from the player controller itself, and then update the health from there. To your issue, where it only looks like it updates the life once, I think that maybe your text's default text LOOKS like it was updated, but it was never updated in the first place. To reduce the amount of confusion in your code, you should probably keep the player script updating the UI as well as making the player be the one in charge of setting the "Game Over" screen, etc... Another thing you should avoid is destroying your canvas. First, the way you find the canvas is kind of unreliable, and if you really want to destroy it, you should set it in the inspector, rename it to something specific, or tag it, but honestly you shouldn't destroy it. If you want it gone, maybe try disabling it with gameObject.SetActive(); (make sure that gameObject is a reference to the canvas). You could reduce a lot of the code you have here by simply using the player's script to update the UI.

Try doing this: delete this script and add a variable to your player controller called lifeText or something. Text is fine, but you should import TextMeshPro (it's much better than the default Unity text, it should be really accessible as well: the editor has the ability to directly import it). Regardless, you add that variable to your player controller and then update the text from the update function there.

You should also "check for death" from your player controller. Make sure to use if(health <= 0) in case your health jumps over zero and avoids the code: always have that as a safety.

If you really want to disable your health canvas, make sure to specifically reference it. "Canvas" is too general, and it looks like you have multiple, which could lead to errors.

Note: if you want to check if something is running continuously, just add a quick Debug.Log("It works.");

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

244 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Load Scene Bug 0 Answers

Everytime when i start at level 3 or higher after completing it it goes back to level 2 how do i fix this? 1 Answer

The script doesn't work correctly 0 Answers

My script only partially works 2 Answers

How can i change position of my character 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges