So the code is made and everything works except for jumping which i really need to get fixed so issue is when player is walking up hills or going up stairs and etc if you jump you launch into the sky and pretty much glide your back down.
using UnityEngine;
using System.Collections.Generic;
using System.Collections;
public class PlayerMovement : MonoBehaviour{
[HideInInspector]
public bool sprinting;
[HideInInspector]
private Rigidbody selfRigidbody;
[HideInInspector]
public Option menukey;
[HideInInspector]
public KeyController ControllerCS;
[HideInInspector]
public bool isGrounded;
void Start()
{
selfRigidbody = GetComponent<Rigidbody>();
}
void Update()
{
if (!menukey.MenuLock)
{
for (int i = 0; i < ControllerCS.KeyCS.Length; i++)
{
if (ControllerCS.KeyCS*.AllKeys.keyname == "Sprint")*
{
if (Input.GetKey(ControllerCS.KeyCS*.AllKeys.key))*
{
sprinting = true;
}
else
{
sprinting = false;
}
}
if (ControllerCS.KeyCS*.AllKeys.keyname == “Forward”)*
{
if (Input.GetKey(ControllerCS.KeyCS*.AllKeys.key) && sprinting)*
{
transform.Translate(0, 0, 6f * Time.deltaTime);
}
else if (Input.GetKey(ControllerCS.KeyCS*.AllKeys.key))*
{
transform.Translate(0, 0, 3f * Time.deltaTime);
}
}
if (ControllerCS.KeyCS*.AllKeys.keyname == “Back”)*
{
if (Input.GetKey(ControllerCS.KeyCS*.AllKeys.key))*
{
transform.Translate(0, 0, -3f * Time.deltaTime);
}
}
if (ControllerCS.KeyCS*.AllKeys.keyname == “Right”)*
{
if (Input.GetKey(ControllerCS.KeyCS*.AllKeys.key))*
{
transform.Translate(3f * Time.deltaTime, 0, 0);
}
}
if (ControllerCS.KeyCS*.AllKeys.keyname == “Left”)*
{
if (Input.GetKey(ControllerCS.KeyCS*.AllKeys.key))*
{
transform.Translate(-3f * Time.deltaTime, 0, 0);
}
}
if (ControllerCS.KeyCS*.AllKeys.keyname == “Jump”)*
{
if (Input.GetKey(ControllerCS.KeyCS*.AllKeys.key) && isGrounded)*
{
selfRigidbody.AddForce(0, 25, 0, ForceMode.Impulse);
isGrounded = false;
}
}
}
}
}
void OnCollisionStay()
{
isGrounded = true;
}
}