• 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
Question by adude172 · Sep 24, 2018 at 02:50 AM · 2d2d-platformerjumpjumpingplatformer

Jumping on enemies help

I'm trying to make a platformer with no jumping except for landing on enemies heads. It currently works but the jumping is sorta broken: if I am moving when I hit an enemy, the player will sometimes jump really low, sometimes a medium height, and sometimes really really high. See this gif for an example.

How can I make it more consistent? Here's the script I'm using for my Player, there is a blank GameObject as a child which I check for the ground layer with:

using System.Collections; using UnityEngine.SceneManagement;

public class Player : MonoBehaviour {

 [HideInInspector] public bool jump = false;   //used later for jump detect
 public float Speed = 365f;                //controls speed of player
 public float jumpForce = 1000f;       //controls how forceful jumps are
 public Transform groundCheck;      //gameobj thats used later for checking if touching ground


 private bool grounded = false;    //used for groundcheck
 private Rigidbody2D rb2d;    //name for rigidbody2d attached, used later for physics stuffs
 private SpriteRenderer spriteRenderer;  //renderer attached
 //Animator Animator;  //used to control animations!


 void Start ()
 {
     //Animator = GetComponent<Animator> ();  //calls an Animator component called Animator

 }
 // Use this for initialization
 void Awake () 
 {
     rb2d = GetComponent<Rigidbody2D>();   //calls rigidbody2d component called rb2d
     //Animator = gameObject.GetComponent<Animator>(); //calls an Animator component called Animator


 }

 // Update is called once per frame
 void Update () 
 {
     grounded = Physics2D.Linecast(transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Enemy")); //defines what grounded is: a gameobj that casts a line at its current pos that checks if the player is touching a layer called "Ground", what my floor is made out of. 

     if (grounded)  //can only jump if grounded is true, basically if is touching floor
     {
         jump = true;
     }
     if (Input.GetKey (KeyCode.R))
         SceneManager.LoadScene (SceneManager.GetActiveScene ().buildIndex - 0);
 }

     



 void FixedUpdate()
 {
     float Dirx = Input.GetAxis ("Horizontal") * Speed * Time.deltaTime;  //dirx is left or right depending on what on the x axis is pressed, a or left for left, and d or right for right. 
     transform.position = new Vector2 (transform.position.x + Dirx, transform.position.y);  //this transforms (moves) the player in the dir specified by dirx, and takes the speed from dirx too. 


     if (jump)
     {
         rb2d.AddForce(new Vector2(0f, jumpForce)); //adds a force to the rigidbody, multiplied by jumpforce.
         jump = false;  //can't jump right after jumping, until touching floor again. 
     }

} }

Any ideas? I'm new to unity, any help would be great, thanks!

Comment

People who like this

0 Show 0
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

  • Sort: 

Unity Answers is in Read-Only mode

Unity Answers content will be migrated to a new Community platform and we are aiming to launch a public beta by June 9. Please note, Unity Answers is now in read-only so we can prepare for the final data migration.

For more information and updates, please read our full announcement thread in the Unity Forum.

Follow this Question

Answers Answers and Comments

251 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 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 can't do jump in my 2D game 1 Answer

How do I disable Jumping while on my JumpPad? 1 Answer

Checking if the player jumps while not grounded 0 Answers

2D Platform irregular jump 1 Answer

Need help with Character Jump! 0 Answers


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