• 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 Ozale · Jul 10, 2011 at 01:23 PM · dontdestroyonload

Preventing variable from resetting when level loads

I've created a game with 5 levels, and each level contains objects that the player picks up and delivers to a certain location. I already have a score system that uses DontDestroyOnLoad (transform.gameObject); to keep the score in the next scene.

My problem is this: I've created a 'quota'system that keeps track of how many objects the player has left to gather to complete the level. This works fine currently, at least for gathering the items and progressing to the next level. When the player dies, however, the level resets (using Application.LoadLevel (Application.loadedLevelName);), but the 'quota'for the level is reset. Initially I tried making it a regular var : int, so it could be edited in the inspector, and passing this to a static var that could be accessed by the player's object. When I discovered the restarting issue, I tried simply hard-declaring it to no avail.

Can anybody see what I'm doing wrong here?

Here's the code attached to a GuiText (that displays the quota): static var bottleQuota : int;

 function Awake () {
     DontDestroyOnLoad (transform.gameObject);
     bottleQuota = 5;
 }
   
 function OnGUI() {
         guiText.text = "Bottles to collect : " + bottleQuota;
 }

...and here is the relevant code attached to the player character:

 bottleQuotaCounter.bottleQuota -= cargo;

Cheers,

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 DavidDebnar · Jul 10, 2011 at 01:50 PM

PlayerPrefs

  • David

Comment
Add comment · Show 3 · 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
avatar image Ozale · Jul 10, 2011 at 11:09 PM 0
Share

If I use PlayerPrefs, I'll still need to 'set' the 'quota' per level, and when the level reloads it will run that 'setting' code again, which will make this solution useless, yes?

avatar image _Petroz · Jul 11, 2011 at 12:55 AM 1
Share

Write when ending level, read when starting level.

avatar image Ozale · Jul 11, 2011 at 01:03 AM 0
Share

Yeah that occurred to me this morning. I'll test it this evening.

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Stopping Dontdestroyonload 2 Answers

DontDestroyOnLoad issue 1 Answer

Can you undo "dont destroy on load"? 1 Answer

dontdestroyonload object references 0 Answers

How to check scene number and use it in an If statement? 3 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