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 /
  • Help Room /
avatar image
0
Question by Flaurentine · Dec 06, 2016 at 02:31 AM · variablesfirst-person-controllerupdate function

Speed variable not incrementing per frame (Bug?)

I'm working with first person movement, incrementing the Y speed of my character controller by Time.deltaTime * Physics.gravity.y:

 var speedY = 0;
 
 function Update () {
     speedY += -Physics.gravity.y * Time.deltaTime;
     Debug.Log("SpeedY: "+speedY);
 
     if(Input.GetButtonDown("Jump")) {
         speedY += 30;
     }
 };

I understand this to be pretty standard stuff. Unfortunately, my controller acts very unpredictably, falling slowly, not falling or actually floating upwards. Logging the speedY variable shows me that it is simply not updating when the controller should be accelerating downwards, or changing sporadically.

Re-writing the physics bit of my code to do it manually was my first response, so I came up with:

 if(cc.isGrounded) {
         speedY = 0;
     } else {
         speedY += -9.81*Time.deltaTime;
     };

This has no effect. Curiously, though (and this is what makes me suspect a bug), if I pump "gravity" up to about sixty, all the funny behaviour evaporates and it's like walking on jupiter. Not what I want, but playable. The variable stops incrementing the way it should between 55 and 60, ie I'm still seeing the strange behaviour at

 speedY += -55*Time.deltaTime; 

but not

 speedY += -60*Time.deltaTime;

Sorry for being kinda long winded, but this seems a bit complex and funny, so I wanted to be as clear as I can. Is this a bug, or some esoteric part of how variables are updated at runtime that I need to be aware of?

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 richardgengle · Aug 07, 2020 at 03:19 AM

@Flaurentine recall that certain numbers have a furthest extent... in that .. a float has #######.## .... if you get a number like 0.00001... that is zero.... so if ur math anywhere pushes u beyond 2 decimal places, eg, 0.0001,,,, the numbers go funky bad.

Comment
Add comment · Show 1 · 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 xxmariofer · Aug 07, 2020 at 10:01 AM 0
Share

thats not true, floats can have 7 decimals and they are not bad

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

83 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

Related Questions

I want to change two variables with another script 0 Answers

Variables not being updated with get and set [SOLVED] 2 Answers

Text object updating on everything else except for variable 0 Answers

Gyro camera control with forward and backward movement 1 Answer

Player Jumping Issue 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