Quantcast
Channel: Questions in topic: "addforce"
Viewing all articles
Browse latest Browse all 1264

How do i make jumps follow through with rigidbody2D.addforce?

$
0
0
i'm currently using the 2D character controller that comes in the Sample Assets package as a starting point for my 2D game. the thing is when you jump you can move around in the air, but when you stop inputting a direction the player stops in his tracks. i would like the jump to follow through with rigidbody2D physics. but i cant seem to get it working. my horizontal movement is done with rigidbody2D.velocity. my player is a rigidbody2D ***heres the code:*** > input sctipt using UnityEngine; [RequireComponent(typeof(PlatformerCharacter2D))] public class Platformer2DUserControl : MonoBehaviour { private PlatformerCharacter2D character; private bool jump; void Awake() { character = GetComponent(); } void Update () { // Read the jump input in Update so button presses aren't missed. if (Input.GetButtonDown("Jump")) jump = true; } void FixedUpdate() { // Read the inputs. float h = Input.GetAxis("Horizontal"); // Pass all parameters to the character control script. character.Move( h , jump ); // Reset the jump input once it has been used. jump = false; } }>Character controller sing UnityEngine; public class PlatformerCharacter2D : MonoBehaviour { bool facingRight = true; // For determining which way the player is currently facing. [SerializeField] float maxSpeed = 10f; // The fastest the player can travel in the x axis. [SerializeField] float jumpForce = 400f; // Amount of force added when the player jumps. [Range(0, 1)] // Amount of maxSpeed applied to crouching movement. 1 = 100% [SerializeField] bool airControl = false; // Whether or not a player can steer while jumping; [SerializeField] LayerMask whatIsGround; // A mask determining what is ground to the character Transform groundCheck; // A position marking where to check if the player is grounded. float groundedRadius = .2f; // Radius of the overlap circle to determine if grounded public bool grounded = false; // Whether or not the player is grounded. Transform ceilingCheck; // A position marking where to check for ceilings float ceilingRadius = .01f; // Radius of the overlap circle to determine if the player can stand up Animator anim; // Reference to the player's animator component. void Awake() { // Setting up references. groundCheck = transform.Find("GroundCheck"); ceilingCheck = transform.Find("CeilingCheck"); anim = GetComponent(); } void FixedUpdate() { // The player is grounded if a circlecast to the groundcheck position hits anything designated as ground grounded = Physics2D.OverlapCircle(groundCheck.position, groundedRadius, whatIsGround); anim.SetBool("Ground", grounded); // Set the vertical animation anim.SetFloat("vSpeed", rigidbody2D.velocity.y); } public void Move(float move, bool jump) { //only control the player if grounded or airControl is turned on if (grounded || airControl) { // The Speed animator parameter is set to the absolute value of the horizontal input. anim.SetFloat ("Speed", Mathf.Abs (move)); // Move the character rigidbody2D.velocity = new Vector2 (move * maxSpeed, rigidbody2D.velocity.y); // If the input is moving the player right and the player is facing left... if (move > 0 && !facingRight) // ... flip the player. Flip (); // Otherwise if the input is moving the player left and the player is facing right... else if (move < 0 && facingRight) // ... flip the player. Flip (); } // If the player should jump... if (grounded && jump) { // Add a vertical force to the player. anim.SetBool ("Ground", false); rigidbody2D.AddForce (new Vector2 (0f, jumpForce)); } if(Input.GetAxis("Vertical") != 0) { Physics2D.IgnoreLayerCollision (9, 11, true); } else { Physics2D.IgnoreLayerCollision (9, 11, rigidbody2D.velocity.y > 0); } } void Flip () { // Switch the way the player is labelled as facing. facingRight = !facingRight; // Multiply the player's x local scale by -1. Vector3 theScale = transform.localScale; theScale.x *= -1; transform.localScale = theScale; } } sorry i couldn't be more to the point i hope you guys understand and can help me out. the jumping just feels weird haha. Thanks so much!

Viewing all articles
Browse latest Browse all 1264

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>