Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 jeffreywarf · Feb 24, 2014 at 08:23 PM · physicsraycastjumping

"Jumping" Mechanics

I'm trying to write the most simple jumping mechanics that I possibly can for a 2D sidescroller. Here's what I have:

 var can_jump : boolean;
 var velocity : float;
 
 var jump_delay : float;
 var jump_reset : float;
 
 var passed_in_ok : boolean;
 var jumping : boolean;
 
 var test_hit : GameObject;
 
 function Start () {
 
 }
 
 function Update () {
 
 var ray = new Ray(transform.position,Vector3(0,-1,0));
 var hit : RaycastHit;
 
      if (collider.Raycast (ray, hit, 100.0)) 
      {
             Debug.DrawLine (ray.origin, hit.point);
             Debug.Log("Something!");
             hit.transform.gameObject.renderer.material.color = Color.red;
     }
 
     if(rigidbody.velocity.y == 0 || passed_in_ok == true)
     {
     can_jump = true;
     }
     else
     {
     can_jump = false;
     }
     
     if(can_jump == true)
     {
         if(Input.GetKey(KeyCode.Space))
         {
         jump_delay = jump_reset;
         rigidbody.velocity = Vector3(0,velocity,0);
         }
     }
 
 }

The raycast part does NOT work at all. What I was trying to do there was tell if there was a surface immediately beneath the object, then highlight it red to indicate that it can tell that it's there. Well that doesn't work at all, also, just having it only allow you to jump when the velocity is at 0 results in very sluggish jumping where the object will take a second to jump again once it's hit the ground. The closest I got to "good", workable mechanics was having thin, invisible colliders on the platforms that can detect when the object is there, and then it will allow the object to "jump" regardless of current velocity, but this seems inefficient to have to put an invisible collider on every object and use "OnTriggerEnter" all the time. So I'm just trying to determine now if there's a way to tell if there's a surface directly below the object or tell if it's on the "ground" in a way.

Is this possible? If so, how does one accomplish 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

0 Replies

· Add your reply
  • Sort: 

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

19 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

Related Questions

Unable to set collision layer from scrip 0 Answers

Realistic Helicopter AI Movements using physics 0 Answers

Raycast is being unreliable 1 Answer

Gun script using Physics.Raycast not working? 2 Answers

Make a rolling ball always on ground without falling when reaching the edges of the map 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