using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.XR;
public class NewJump77 : MonoBehaviour
{
XRIDefaultInputActions obj_PlayerInputActions;
public float jumpHeight = 300f;
public bool isGrounded;
public float NumberJumps = 0f;
public float MaxJumps = 2;
private Rigidbody rb;
public AudioSource jumpSound;
private void Awake()
{
obj_PlayerInputActions = new XRIDefaultInputActions();
obj_PlayerInputActions.XRIRightHand.Jump.performed += x => Jump();
}
#region - Enable/Disable -
private void OnEnable()
{
obj_PlayerInputActions.Enable();
}
private void OnDisable()
{
obj_PlayerInputActions.Disable();
}
#endregion
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Jump()
{
if (NumberJumps > MaxJumps - 1)
{
isGrounded = false;
}
if (isGrounded)
{
Debug.Log("I'm Jumping Bitch");
NumberJumps += 1;
rb.AddForce(Vector3.up * jumpHeight);
jumpSound.Play();
}
}
void OnCollisionEnter(Collision other)
{
isGrounded = true;
NumberJumps = 0;
}
void OnCollisionExit(Collision other)
{
}
}
[code]
Something isn’t quite right about your code formatting tags so your code is tough to read. They need to be in square brackets to work.
How to use code tags: Using code tags properly
For this particular class of problem, which could be scene/prefab setup and not even be in the code at all, I recommend liberally sprinkling Debug.Log() statements through your code to display information in realtime.
Doing this should help you answer these types of questions:
- is this code even running? which parts are running? how often does it run?
- what are the values of the variables involved? Are they initialized?
Knowing this information will help you reason about the behavior you are seeing.