• 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
Question by UHDynamical · Jul 12, 2018 at 05:48 PM · c#timecomboxp

Help with displaying gained EXP on screen.

I'm trying to write a script that displays the amount of exp points the player has earned in the last 3.5 seconds on the screen using a script. I managed to create a script that showed the exp they just gained but this overwrites the exp they gained beforehand. For example, if i earned 20 exp, then 10 more within a second, it will just display 10. I;m trying to code something so it would stack that 20 and 10, display it and if no more exp is earned within a few more seconds, it will reset back to 0 and hide.

 public TMPro.TMP_Text expIncrementUI;
 
 private void Start()
     {
 
         GameObject player = GameObject.Find("Player"); 
 
         PlayerData playerData = player.GetComponent<PlayerData>();
 
 
         previousCurrentEXP = playerData.currentEXP;
 
     }
 
 void OnGUI()
     {
 
 
         EXPIncrement();
 
     }
 
 void EXPIncrement()
     {
 
         GameObject player = GameObject.Find("Player"); 
 
         PlayerData playerData = player.GetComponent<PlayerData>(); 
 
 
         if (playerData.currentEXP != previousCurrentEXP)
         {
 
 
             StartCoroutine(EXPCombo());
 
 
         }
 
 IEnumerator EXPCombo()
     {
 
         GameObject player = GameObject.Find("Player"); 
 
         PlayerData playerData = player.GetComponent<PlayerData>(); 
 
 
         expGaining += playerData.currentEXP - previousCurrentEXP;
 
         oldEXPGaining = expGaining;
 
         expIncrementUI.enabled = true;
 
 
         expIncrementUI.text = "+" + (expGaining).ToString();
 
 
         yield return new WaitForSeconds(3.5f);
 
         if (oldEXPGaining == expGaining)
         {
 
             expGaining = 0;
 
             expIncrementUI.enabled = false;
 
             previousCurrentEXP = playerData.currentEXP;
 
         }
 
 
 
 
     }
 
 
 }
 

The error i am recieving is the fact this code keeps on adding exp after the first amount of exp is gained, so the numbers keep rising and rising and never stops.

Comment

People who like this

0 Show 0
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

Answer by Strixie13 · Jul 13, 2018 at 02:08 AM

Something like this maybe? I used two variables for EXP, a temporary and total. Every couple seconds the temporary one will dump into the total and reset. In the meantime the update function keeps updating the current EXP (unless its less than zero, in which case it will hide).

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI; 
 
 public class ExpExample : MonoBehaviour {
 
     //When adding EXP for completing an objective add value to the temporaryEXP var, ie
     //temporaryEXP += 6; 
 
     public int totalEXP;        //Total EXP the character has. 
     public int temporaryEXP;    //Temporary exp at 3.5 second intervals
     bool displayingEXP;         
 
     public Text displayEXP;     //Display text output. 
 
     private void Start()
     {
         displayingEXP = true;     //Initialize Vars//
         totalEXP = 0;
         temporaryEXP = 0; 
 
         StartCoroutine(ResetEXP());    //Start Looping// 
     }
 
     private void Update()
     {
         if(temporaryEXP > 0)  
         {
             displayEXP.enabled = true; 
             displayEXP.text = temporaryEXP.ToString();
         }
         else
         {
             displayEXP.enabled = false; 
         }
 
     }
 
     public IEnumerator ResetEXP()
     {
         while(displayingEXP == true)
         {
             yield return new WaitForSeconds(3.5f);
             totalEXP += temporaryEXP;                 
             temporaryEXP = 0;                              
         }
     }
 }
Comment

People who like this

0 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 UHDynamical · Jul 14, 2018 at 02:08 AM 0
Share

I’ll sure give this a try. Thank you for the response. After looking through it, I’ve noticed temporaryEXP never gets EXP added to it. I’m assuming temporaryEXP = newEXP - oldEXP. Correct me if I’m wrong or suggesting anything else, please.

avatar image Strixie13 UHDynamical · Jul 14, 2018 at 01:06 PM 0
Share

No, you would need to do totalEXP += temporaryEXP. Temporary is to display in small segments, then you want to always add that to the total. Try plugging in numbers to help visualize it. If you have 100 exp already then gain 10, then gain 20, you have 30 temporary and 100 total. Display the 30 however you want, then your new total should be 130. Shouldn't be any minuses in their anywhere.

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.

Update about the future of Unity Answers

Unity Answers content will be migrated to a new Community platform and we are aiming to launch a public beta later in June. Please note, we are aiming to set Unity Answers to read-only mode on the 31st of May in order to prepare for the final data migration.

For more information, please read our full announcement.

Follow this Question

Answers Answers and Comments

520 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

Related Questions

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

Cooldowns with Time.time 2 Answers

c# wait script 2 Answers

How to realize accurate time counter (millisecond precision) 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