• 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
1
Question by drapi · May 12, 2021 at 10:25 AM · c#scripting beginner

Is it possible that variable value is saved between Play Modes without me knowing?

Hi, I have problem with my script that is storing amount of currency (currency is dropped when enemy is killed). Method changeQuantity() is called from script attached to Player when enemy is killed and is incremented by one.

The problem is that it seems like the script is somehow "carrying" essenceQuantity from previous Play Mode. For example, when I enter Play Mode and kill one enemy, the essenceQuantity = 1. When I exit and enter Play Mode again, after killing one enemy, the essenceQuantity = 2 and so on. alt text alt text Screens were taken in two Play Modes after killing one enemy.

 public class Blood_Essence_Quantity_Script : MonoBehaviour
 {
     private int essenceQuantity;
 
     void Awake()
     {
         essenceQuantity = 0;
         Debug.Log("Quantity after Awake = " + essenceQuantity);
         gameObject.GetComponent<Text>().text = essenceQuantity.ToString();
     }
 
     public void changeQuantity(int quantityDiference)
     {
         Debug.Log(quantityDiference);
         essenceQuantity = essenceQuantity + quantityDiference;
         Debug.Log("Quantity after killing enemy = " + essenceQuantity);
         gameObject.GetComponent<Text>().text = essenceQuantity.ToString();
     }
 }

vystrizek.png (7.8 kB)
vystrizek1.png (7.9 kB)
Comment
Add comment · Show 2
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 Hellium · May 12, 2021 at 10:53 AM 1
Share

Are you sure the issue does not come from the quantityDiference you pass to the function?

You did not show what Debug.Log(quantityDiference); in your screens.

avatar image drapi Hellium · May 12, 2021 at 11:09 AM 0
Share

Function is called this way, so it doesn't cause the problem.

 bloodEssenceUIText.GetComponent<Blood_Essence_Quantity_Script>().changeQuantity(1);





2 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by andrew-lukasik · May 13, 2021 at 10:07 AM

To crack this elusive mystery-case, replace:

 private int essenceQuantity;

with:

 int __essenceQuantity = 0;// don't touch this;
 int essenceQuantity
 {
     get
     {
         Debug.Log($"{nameof(essenceQuantity)}.get called, value: {__essenceQuantity}",gameObject);
         return __essenceQuantity;
     }
     set
     {
         // read message callstack for details
         Debug.Log($"<b>{nameof(essenceQuantity)}.set called, new value: {value}</b>",gameObject);
         __essenceQuantity = value;
     }
 }

My bet is on this component being disabled, so Awake is never called. Second piece of the puzzle, logs, will tell the rest of the story.


TL;DR: This component was part of a prefab asset and not a scene gameObject so it's fields never resets.

Comment
Add comment · Show 8 · 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 drapi · May 13, 2021 at 10:37 AM 0
Share

I did as you told. I tested this in two Play Modes and this is the result. Is it possible for Awake() not to be called? Because Debug.Log("Quantity after Awake = " + essenceQuantity); was printed every time.

alt text alt text

img1.png (21.2 kB)
img2.png (20.3 kB)
avatar image andrew-lukasik drapi · May 13, 2021 at 10:53 AM 0
Share

What happened here ? Are these even co$$anonymous$$g from the same object ?

essenceQuatity.get called, value:0

essenceQuatity.get called, value:1

(lower image)


What we know for sure so far is:

  • Magic does not exists; there are only bugs.

  • essenceQuantity changes between Awake and changeQuantity calls... magically

Are you 100% sure you're not accessing __essenceQuantity from anywhere else?

(other that that two places in essenceQuantity property get/set)

avatar image drapi andrew-lukasik · May 13, 2021 at 12:28 PM 0
Share
  • I'm 100% sure that I change essenceQuantity only in public class Blood_Essence_Quantity_Script.

  • Since I'm beginner, I missed one fact, that could be important. The thing is that when I'm outside of Play Mode, inspector shows this. alt text During testing in Play Mode the value of essenceQuantity (or _essenceQuantity here) is normaly incremented.

img3.png (9.8 kB)
Show more comments
avatar image
0

Answer by pradeeppurigoswami7 · May 13, 2021 at 05:55 AM

Yes they are using two method to save data in online and offline without knowing...

  1. Integrated unity saving system provided by unityClick for view video

  2. You are used the C# Programble method linkClick View video

Comment
Add comment · Show 2 · 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 pradeeppurigoswami7 · May 13, 2021 at 07:27 AM 0
Share

Problem in the Method :- like "essenceQuantity" is contain Value allready so The Value is increase so firstly Check This Method and related the method only class public void changeQuantity(int quantityDiference) { Debug.Log(quantityDiference); essenceQuantity = essenceQuantity + quantityDiference; Debug.Log("Quantity after killing enemy = " + essenceQuantity); gameObject.GetComponent().text = essenceQuantity.ToString(); }

avatar image drapi pradeeppurigoswami7 · May 13, 2021 at 09:25 AM 0
Share

I tried to look at it in debug mode and I found out that essenceQuantity is not equal zero right after I call the public void changeQuantity method. Which is weird because I set value of essenceQuantity to zero in void Awake().

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

716 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image 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

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

Destroy just the last child from a parent after the child hit a trigger 0 Answers

Proplem with position reset script of certain object 0 Answers

Please Help Me With My Stamina Bar! 1 Answer


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