• 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 uberblockhead · Oct 23, 2014 at 12:21 AM · saveframes

Saving a value 1 or 2 frames before it is destroyed

So an example of what i need is lets say the velocity of the object is 250m/s it flew of 2 seconds and now it is reduced to 150m/s and then it hits how can I save the value before it hits and is destroyed otherwise i will get 0m/s because the object hit the wall

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 Kiwasi · Oct 23, 2014 at 12:39 AM

Unfortunately detecting future events is one of the few things that is still impossible in computer programming.

Easiest way to do this would be to store a value every frame with the object velocity. Keep that value around for a couple of frames. Then if the object hits a wall you can get the value from two frames ago. Pseudo code follows.

 private int velocityMinus2;
 private int velocityMinus1;
 private int velocityMinus0;
 
 void Update (){
     velocityMinus2 = velocityMinus1;
     velocityMinus1 = velocityMinus0;
     velocityMinus0 = rigidbody.velocity;
 }

The other option is to try and predict the collision in advance. This is more expensive in terms of code and processing power. It could also fail if your wall movement is unpredictable.

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 Habitablaba · Oct 23, 2014 at 12:48 AM 0
Share

Unfortunately detecting future events is one of the few things that is still impossible in computer program$$anonymous$$g.

This is not entirely true. If you have an object which moves in a predictable way, you can totally predict where it will be in 'x' time.

$$anonymous$$y suggestion would be to add a short raycast off the front of your moving object, and when it registers a hit (effectively predicting a collision about to happen), save off the speed data.

avatar image Kiwasi · Oct 23, 2014 at 05:31 AM 0
Share

Raycasting would work. It really depends on the specific game situation, but my gut feel is a raycast each frame will be significantly less performant.

It's perfectly possible to predict future events. But it's impossible to detect events before they happen. Subtle difference I know. But if you throw some user input on it becomes very apparent where predictions can break.

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

How to constantly save game progress? 1 Answer

Use Prefabs on different Computers 1 Answer

How to save/load the Y-Coordinates of Instantiated Objects 1 Answer

Rotation no save to array 1 Answer

How to save gameobject values with respect to scene? 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