• 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 olas72 · May 12, 2013 at 09:06 AM · prediction

Cheapest way to test collision along a parabolic arc

I have created a parabolic arc function to predict air time for a character when he jumps at different speeds off objects in the world, and I want to predicts how far he will travel before he hits the ground.

It might be several seconds in the air before he hits the ground, and to exactly follow the parabolic arc with raycasts would be hundreds of ray cast. Anyone have any suggestions for a cheaper way of achieving this?

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 Glidias · Feb 07, 2015 at 01:36 PM

If all objects consist of sloping segments and such, just use the typical line-quadratic curve in 2D intersection tests to determine collision time of trajectory projectile against any relevant "slopes" whose curving arc cuts through them.

A flash fiddle in 2D. Includes a description of a "possible" way to extend it to a 3D context. http://wonderfl.net/c/316X

Note that for "fully vertical surfaces" (ie. infinite 'm' in y=mx+b line equations), you just need to get the 2D bird's eye colision time of the ray intersection against the wall segment to know the "time-of-impact" in 2D, and the trajectory's y height position at that intersection point will identify where/(and whether) it hits within the surface at that given time of impact. No quadratic formula needed.

Some high school math links for reference: http://www.had2know.com/academics/trajectory-parabola-equations-calculator.html http://zonalandeducation.com/mmts/intersections/intersectionLineAndParabolla1/intersectionLineParabolla1.html

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
avatar image
0

Answer by Baste · Feb 07, 2015 at 12:42 PM

There are two ways I can think of:

1: Use raycasts! They are really, really cheap. You'll want to approximate your parabola with not that many raycasts - 5 or so should be enough. Doing a couple of raycasts every frame is actually not as bad as you'd think it is.

2: Use a particle system! Make particles that follow your parabola, and turn on particle collisions. You can grab the intersection point where the particles hit the ground with a script attached to the particle system (or the ground), and base your maths on that. Check our raycast collisions here and here.

2 will give you a more accurate result than 1 if you can get the particles to follow your parabola. I have no idea which one is best performance wise, but remember that the physics system is pretty fast, so you should be fine in either case.

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.

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

16 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

Related Questions

Unity vs client-side prediction 0 Answers

How do I predict an objects position that might collide with something?? 0 Answers

Turn-based vehicle physics 1 Answer

Unity prediction line renderer 0 Answers

How to find where a navagent will be? 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