Unity- Controlling Jump Height
I am currently following the 2d Game Player Controller Tutorial in Unity. Everything works, but I have a question. For some reason, the jump height is fixed. Here is the code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RobotControllerScript : MonoBehaviour {
public float maxSpeed = 10f;
bool facingRight = true;
Animator anim;
bool grounded = false;
public Transform groundCheck;
float groundRadius = 0.2f;
public LayerMask whatIsGround;
public float jumpForce = 700f;
// Use this for initialization
void Start () {
anim = GetComponent<Animator>();
}
// Update is called once per frame
void FixedUpdate () {
grounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround);
anim.SetBool("Ground", grounded);
//vSpeed = vertical speed
anim.SetFloat("vSpeed", GetComponent<Rigidbody2D>().velocity.y);
float move = Input.GetAxis("Horizontal");
anim.SetFloat("Speed", Mathf.Abs(move));
GetComponent<Rigidbody2D>().velocity = new Vector2(move * maxSpeed,
GetComponent<Rigidbody2D>().velocity.y);
if (move > 0 && !facingRight)
{
Flip();
}
else if (move < 0 && facingRight)
{
Flip();
}
}
void Update()
{
if(grounded && Input.GetKeyDown(KeyCode.Space))
{
anim.SetBool("Ground", false);
GetComponent<Rigidbody2D>().AddForce(new Vector2(0, jumpForce));
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}
I was thinking that by editing the jumpForce, I can edit how high the character jumps. This is not the case, it's fixed. For example, I'd change 700f to like 5f, it is still the same jumping height.
public float jumpForce = 700f;
GetComponent<Rigidbody2D>().AddForce(new Vector2(0, jumpForce));
But if I instead change jumpForce to a number like this:
GetComponent<Rigidbody2D>().AddForce(new Vector2(0, 2));
It does affect how high my character jumps. Why does this happen?
EDIT: I played around it a little more. By not setting jumpForce to public (by removing public or setting it to private or setting it to static), I am able to change jump height by changing jumpForce. Can someone explain to me why?
Your answer
![](https://koobas.hobune.stream/wayback/20220612171035im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
I am trying to make a variable jump height mechanic work on a 2d platformer 0 Answers
Jumping while hugging a tiled wall decreases jump height 0 Answers
Jump raycast not working 0 Answers
Jump problem 1 Answer