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 Rembo4Fight · Feb 10, 2018 at 09:26 AM · scripting problemmovementscore systemsmoothdamp

How to make a number Whole after SmoothDamp ?

Hello, so I have my points Script, and I wanted to make it count smoothly like 188 189 190 as count.

And I have a problem trying to resolve this

Please try to help me out here. :)

  using System.Collections;
  using System.Collections.Generic;
  using UnityEngine;
  using TMPro;
  
  public class ScoreManager : MonoBehaviour {
  
      Animator anim;
  
      public static int score;
  
  
      private float m_smoothScore;
      private float m_smoothScoreVelocity;
      private int m_displayedScore = -1;
  
  
  
      TextMeshProUGUI text;
  
      public static bool collected;
  
      public float min;
      public float max;
      public float t;
  
      void Awake()
      {
          text = GetComponent<TextMeshProUGUI> ();
          score = 0;
      }
  
      void Start()
      {
          anim = GetComponent<Animator> ();
          collected = false;
      }
  
      void Update () {
          //smooth score animation
          m_smoothScore = Mathf.SmoothDamp(m_smoothScore,(float)score,ref m_smoothScoreVelocity, 0.2f, Mathf.Infinity, Time.deltaTime);
  
          //display the text
          int toDisplay = (int)Mathf.Round(m_smoothScore);
          if (toDisplay != m_displayedScore) 
          {
              m_displayedScore = toDisplay;
              text.text = "Score: " + m_smoothScore;
          }
  
  
  
          //text.text = score + " PTS";
  
          if (score > 0) 
          {
              anim.SetBool ("Points", true);
          }
          if (collected == true) {
              t = Time.time;
              text.fontSize = Mathf.Lerp (min, max, t);
              collected = false;
          } else {
              t = Time.time;
              text.fontSize = Mathf.Lerp (max, min, t);
          }
      } 
  }

Comment
Add comment · Show 4
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 hexagonius · Feb 10, 2018 at 09:43 AM 1
Share

the cast to int suffices. you don't need that following check because a float almost never equals an int created from it (floating point precision). besides that, what exactly is the problem?

avatar image Rembo4Fight hexagonius · Feb 10, 2018 at 10:32 AM 0
Share

the main problem that I dont need the numbers after the comma I need just Even Numbers

avatar image hexagonius Rembo4Fight · Feb 10, 2018 at 11:07 AM 0
Share

Yeah, that's what the int cast will do

Show more comments

1 Reply

· Add your reply
  • Sort: 
avatar image
1

Answer by Harinezumi · Feb 13, 2018 at 02:46 PM

The issue is that to display a number you have to convert it to a string, and when you convert a float into a string, even if it equals an int, it will display values after the decimal (e.g. 1.0, or 1523.0).

There are various approaches to solve this, but the simplest and best in this case is the following:

 int toDisplay = Mathf.RoundToInt(m_smoothScore);
 text.text = "Score: " + toDisplay;

Don't modify your m_smoothScore for the purpose of displaying it, because that will mess up your calculation. In general, try to separate mentally (and in the code as well) the logic and the display, always deriving the displayed values from the logical ones, and the displayed values never* modifying the logical ones (*there are always exceptions, but they are rare).

Btw, another issues you will have is that you use Time.time for the t parameter of lerping the font size... after the first second you will always start at maximum font size, because Time.time is the time since the start of the application. Instead, use Time.deltaTime when you are "blowing up" your score display, like this:

 if (collected) { // you don't have to check if a bool variable equals true, it is implicit
      t += Time.deltaTime;
 }
 else {
     t -= Time.deltaTime;
 }
 text.fontSize = Mathf.Lerp(min, max, Mathf.Clamp01(t));
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 Bunny83 · Feb 13, 2018 at 04:21 PM 1
Share

He actually had a duplicate post over here where i've answered the question already ^^

avatar image Harinezumi Bunny83 · Feb 13, 2018 at 04:29 PM 0
Share

Oops, didn't notice! I'll crosslink... :D

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

168 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

Related Questions

Whole number Mathf.SmoothDamp ? 1 Answer

How to create a score manager script involving awarding points from multiple objects? 2 Answers

How to Add Knockback Force Based on What Rotation it Came From 2 Answers

I can't get any type of joystick to move my player 1 Answer

How make movement speed constant with FPS? 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