Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
0
Question by AlphaTails · Apr 10, 2020 at 03:29 PM · programmingdontdestroyonloadlives

Loading scene with a DontDestroyOnLoad

In my game, I have a gameManager which is responsible for managing stats such as the player's health, the current time left to complete a level and conditions for the level.

I'm currently attempting to implement lives into my game, but unfortunately, I've been running into problems when reloading a scene.

The first was the duplication of my gameManager, but I know about making static instances for objects. However, when I use this code and try having the scene reload after the player dies, the newly created gameManager lacks all of the values that the original had, the player's health, level conditions are all set to 0.

The code for my gameManager object is as follows:

 public class DontDestroyOnLoad : MonoBehaviour
 {
     
     [SerializeField]
     //Sets up player properties, level conditions, etc.
     public float playerHP;
     //Conditions for levels
     public int relicPieces;
     public int relicRequirements;
     public int livesNum;
     //Max Player HP is used to set starting HP
     public float playerMaxHP;
     public float timeRemaining;
     public float startTime;
     //Used to create a timer for the player
     public TextMeshProUGUI timeText;
     public TextMeshProUGUI relicText;
     public TextMeshProUGUI livesText;
     private basicPlayer PlayerChar;
     private Image HealthBarImage;
     public HealthBar PlayerHPBar;
     private static DontDestroyOnLoad _GMInstance;
     private void Start()
     {
         
         
         
     }
     public void ChangeHealth(float damage) {
         //Player Health is reduced by the damage received from object
         playerHP -= damage;
         //Updates the HP Bar on the UI
         if (PlayerHPBar)
         {
             PlayerHPBar.updateHealth();
         }
        
     }
     public void HealPlayer(float healthIncrease) {
         
         playerHP += healthIncrease;
         if (playerHP > playerMaxHP) {
             playerHP = playerMaxHP;
         }
         if (PlayerHPBar) {
             PlayerHPBar.updateHealth();
         }
     }
     private void Awake()
     {
         
         PlayerChar = FindObjectOfType<basicPlayer>();
         //Sets player HP to match max HP
         playerHP = playerMaxHP;
         timeRemaining = startTime;
         DontDestroyOnLoad(this);
         if (_GMInstance == null)
         {
             _GMInstance = this;
         }
         else {
             Object.Destroy(gameObject);
         }
 
     }
     // Update is called once per frame
     void Update()
     {
         timeRemaining -= Time.deltaTime;
         relicText.text = "" + relicPieces + " / " + relicRequirements;
         timeText.text = "" + Mathf.Round(timeRemaining);
     }
 }

Is there something that I'm missing here? I was under the impression that this would work, but I just run into this issue every time I run the game.

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

0 Replies

· Add your reply
  • Sort: 

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

211 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

Related Questions

save variable from previous scene 2 Answers

How can I separate my Code efficiently ? 0 Answers

Code editors not recognizing the Unity libraries 0 Answers

Projectile with direction 0 Answers

Help with player movement. 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