Search Unity

Question Infinite Jump, how can i fix it? 3D enviroment.

Discussion in 'Scripting' started by sorensanchez, Dec 17, 2022.

  1. sorensanchez

    sorensanchez

    Joined:
    Dec 16, 2022
    Posts:
    1
    My code works fine, the character has movement and jumps, but there is a problem.

    When I press the jump button I can do it infinitely, how can I solve that?

    Here is my code:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public class PlayerMovement : MonoBehaviour
    {

    public float Speed = 1.0f;
    public float RotationSpeed = 1.0f;
    public float JumpForce = 1.0f;

    private Rigidbody Physics;

    void Start()
    {
    Cursor.lockState = CursorLockMode.Locked;
    Cursor.visible = false;

    Physics = GetComponent<Rigidbody>();
    }

    void Update()
    {
    //Movement
    float horizontal = Input.GetAxis("Horizontal");
    float vertical = Input.GetAxis("Vertical");

    transform.Translate(new Vector3(horizontal, 0.0f, vertical) * Time.deltaTime * Speed);

    //Camera Rotation
    float rotationY = Input.GetAxis("Mouse X");

    transform.Rotate(new Vector3(0, rotationY * Time.deltaTime * RotationSpeed, 0));

    //Jump
    if (Input.GetKeyDown(KeyCode.Space))
    {
    Physics.AddForce(new Vector3(0, JumpForce, 0), ForceMode.Impulse);
    }

    }
    }