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 /
avatar image
0
Question by dalessan9 · Nov 10, 2017 at 01:57 AM · c#scripting problembugscore system

Score System - Problem found - Need help with solution

NOT FIXED, but I may have found the problem. I tried changing the way it works slightly, so that the only thing that EnemyKill() passes, is the incoming score to a temporary variable, scoreToIncrease -- w/ debug logs to show what it's actually doing.

 -- Debug.Log("Update - scoreToIncrease: " + scoreToIncrease);//in Update() - always shows zero.
 -- Debug.Log("EK() scoreToIncrease: " + scoreToIncrease);//in EnemyKill() - shows the correct value.

When the incoming function is called, it is changing/creating a new(?) variable, but the class variable is not being affected. Adjusted code.(Shortened)

     public static float scoreMultiplier;
     private float multiplierFallOff = 2f;
     public float scoreTimer = 0f;
     public float scoreMultiplierTemp;
     public float scoreToIncrease = 0f;
 
     void Update ()
     {
         Debug.Log("Update - scoreToIncrease: " + scoreToIncrease);//- Always 0
         if (scoreToIncrease > 0)
         {
             scoreTimer += Time.timeSinceLevelLoad + multiplierFallOff;
             gameManager.playerScore += (int)((scoreMultiplier * scoreToIncrease) + scoreToIncrease);
             scoreMultiplier += 0.1f;
             scoreMultiplierTemp = scoreMultiplier;
             scoreToIncrease = 0;
         }
     }
 
     public void EnemyKill(int score)
     {
         Debug.Log("Inc Score: " + score);
         scoreToIncrease = score;
         Debug.Log("EK() scoreToIncrease: " + scoreToIncrease);//- Shows correct value
     }
 }
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

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Tourist · Nov 10, 2017 at 09:21 AM

scoreTimer is a public variable. Since public are serialized by default in the editor, maybe you have a value in the inspector that is serialized.

If that so, either add [NonSerialized] before the field or put it to private. You can also avoid setting values in the field declaration and put them in an Awake function. As it would fix the issue, it would hide the fact that your field is serialized for no reason.

Comment
Add comment · Show 4 · 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 dalessan9 · Nov 10, 2017 at 01:11 PM 0
Share

As it is a timer, I don't change those values in the inspector / other scripts-- one of my bug squashing ideas - was that somehow, that had happened - so I deleted the original timer variable and remade a new one - since that would initialize it in w/e unseen inspector - sadly new variable showed same behavior. It's in the script itself. - I also attempted ctrl+f - search in solution, scoreTimer I can guarantee this is the only script that affects it

As far as I'm aware, the only point to non-serializing variables, is when you're working with a $$anonymous$$m, and you don't name them in a way that says "Don't you touch it". I'm not currently working with a $$anonymous$$m - all solo dev up in heyah - and being able to see variable values - really helps when finding bugs.

I mean, if serializing is bad, I'm going to have all sorts of problems w/ the [System.Serializable] stuff I did

avatar image Tourist dalessan9 · Nov 10, 2017 at 04:32 PM 0
Share

Don't serialize it, put it to private. You may be able to view it on the editor using the Inspector Debug mode (top right corner).

avatar image dalessan9 Tourist · Nov 10, 2017 at 08:22 PM 0
Share

I usually only make variables I need to be able to see in the inspector - public -- like now - while attempting to find out why the code is not functioning as intended. Using System.Serializable - simply organizes such variables for view. I don't know why there isn't something like [Header("Settings")] that also has a drop-down --- but from my research on the subject -- a variable being serializable doesn't make it more "expensive" to use or have any real negative affects - unless you're working in a $$anonymous$$m environment -- and in that $$anonymous$$m environment - someone changed a variable they shouldn't have - an easy thing to fix.


Perhaps you have the pro version of unity & your debug view is fancier than $$anonymous$$e, but when I use it, it doesn't show private variables or static variables -- making it functionally useless to me.

Show more comments
avatar image
0

Answer by dalessan9 · Nov 10, 2017 at 12:34 PM

Edit** Comment removed to update initial post w/ new info.

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

435 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

Related Questions

Unity can't use the script. 0 Answers

How to give score only once for each level? 0 Answers

How to alter c# script from a script in a different scene (i.e. display score in different scene) 2 Answers

Multiple Cars not working 1 Answer

Which mistake could lead to the detection of a non-existing GameObject? 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