Jumping doesn't work when holding the ball
I'm making a first person basketball game. I think my two scripts (throw object and jump) are colliding with each other.
The problem is that I can't jump when I'm holding the ball. Or when I'm in the air while jumping and grab the ball, I freeze in whatever height I grabbed the ball in, but I can still move.
Could someone tell me whats wrong and provide some answers? Thank you in advance. <<<<<<<<<<< Edit: I fixed the issue of not being able to jump by changing the ground from being a terrain to a flattened cube, but I still freeze in the air when I grab the ball.>>>>>>>>> <<<<<<<<<<< Edit: Well, the jump works sometimes, sometimes not. I can't figure out what't the problem.
Here's the throw object script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ThrowObject : MonoBehaviour
{
public Transform player;
public Transform theDest;
public float throwForce = 10;
bool hasPlayer = false;
bool beingCarried = false;
private bool touched = false;
void Update()
{
float dist = Vector3.Distance(gameObject.transform.position, player.position);
if (dist <= 2.5f)
{
hasPlayer = true;
}
else
{
hasPlayer = false;
}
if (hasPlayer && Input.GetButtonDown("Use"))
{
GetComponent<Rigidbody>().isKinematic = true;
transform.parent = theDest;
beingCarried = true;
}
if (beingCarried)
{
if (touched)
{
GetComponent<Rigidbody>().isKinematic = false;
transform.parent = null;
beingCarried = false;
touched = false;
}
if (Input.GetMouseButtonDown(1))
{
GetComponent<Rigidbody>().isKinematic = false;
transform.parent = null;
beingCarried = false;
GetComponent<Rigidbody>().AddForce(theDest.forward * throwForce);
}
else if (Input.GetMouseButtonDown(0))
{
GetComponent<Rigidbody>().isKinematic = false;
transform.parent = null;
beingCarried = false;
}
}
}
void OnTriggerEnter()
{
if (beingCarried)
{
touched = true;
}
}
}
And here's the jump script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Collections;
public class Jump : MonoBehaviour
{
public Vector3 jump;
public float jumpForce = 2.0f;
public bool isGrounded;
Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
jump = new Vector3(0.0f, 2.0f, 0.0f);
}
void OnCollisionStay()
{
isGrounded = true;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.AddForce(jump * jumpForce, ForceMode.Impulse);
isGrounded = false;
}
}
}
Your answer
Follow this Question
Related Questions
I can't jump the ball like I want 0 Answers
How to make the ball jump smoothly on tap in unity2D ?? 0 Answers
Ball Bouncing Game(When I touch on ball) 0 Answers
Jump raycast not working 0 Answers
Jump problem 1 Answer