Need Help with Jump Coding
Alright I am new to Unity and after spending over 20 hours trying to get my player to jump after watching countless tutorials and searching help forms online it has come to this. I have come to the conclusion (probably a very wrong one since I am new) that my box colliders are not registering correctly and I don't know how to fix it. I can get my character to jump once but when I land but for some reason it is not registering that I am grounded after my first jump. I have 2D colliders on both the object and player I have tried with just my player having a rigidBody2D and I have tried with both having rigidBody2Ds attached. My rigid body on my player is set to dynamic. I even tried to put in a code to let me know whenever I made contact with the ground but didn't get any info back (not sure if I even coded it right) I've tried many variations of codes with no success here is what I have right now. If anyone can help you will be a God in my eyes, thanks!
using System.Collections; using System.Collections.Generic; using UnityEngine;
//statements
public class Move2D : MonoBehaviour { public float moveSpeed = 5f; public bool isGrounded; public Vector3 jump; public float jumpForce = 2.0f; Rigidbody2D rb;
void OnCollisionStay()
{
isGrounded = true;
}
void OnTriggerEnter(Collider collision){
if(collision.gameObject.CompareTag ("Player")){
Debug.Log ("awake)");
}
}
// Use this for initialization
void Start() {
rb = GetComponent<Rigidbody2D>();
jump = new Vector3(0.0f, 2.0f, 0.0f);
isGrounded = true;
}
// Update is called once per frame
void FixedUpdate() {
if(Input.GetKeyDown(KeyCode.Space) && isGrounded){
rb.AddForce(jump * jumpForce, ForceMode2D.Impulse);
isGrounded = false;
}
{
// movement side-to-side
Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), 0f, 0f);
transform.position += movement * Time.deltaTime * moveSpeed;
}
}
}