So I need I’m trying to get a gameObject to jump, which I succeeded in, but its 50% of the way there to completion. I can get it to jump once and not get it to go up when I hold “Space”, but if I spam tap space it’ll keep going up. I think I either have a coding error somewhere, or I am just missing a piece of code somewhere. Could I please get someone to point out my error? Thanks!
Here’s my code:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PlayerController : MonoBehaviour
{
public GameObject Player;
public float speed;
public Text countText;
public Text winText;
public float jumpHeight = 200f;
public float bounceHeight = 200f;
private Rigidbody rb;
private int count;
void Start()
{
rb = GetComponent<Rigidbody>();
count = 0;
SetCountText();
winText.text = "";
}
void Update()
{
RaycastHit hit;
Ray bouncingRay = new Ray(transform.position, Vector3.down);
if (Physics.Raycast(bouncingRay, out hit, bounceHeight))
{
if (hit.collider.tag == "Ground" && Input.GetKeyDown("space"))
{
rb.AddForce(Vector3.up * jumpHeight);
}
else
{
//need to disable key here
}
}
}
void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
rb.AddForce(movement * speed);
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Pick Up"))
{
other.gameObject.SetActive(false);
count = count + 1;
SetCountText();
}
}
void SetCountText()
{
countText.text = "Count: " + count.ToString();
if (count >= 8)
{
winText.text = "You Win!";
}
}
}