You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
public class Jump : MonoBehaviour
|
|
|
|
|
{
|
|
|
|
|
Rigidbody rigidbody;
|
|
|
|
|
public float jumpStrength = 2;
|
|
|
|
|
public event System.Action Jumped;
|
|
|
|
|
|
|
|
|
|
[SerializeField, Tooltip("Prevents jumping when the transform is in mid-air.")]
|
|
|
|
|
GroundCheck groundCheck;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Reset()
|
|
|
|
|
{
|
|
|
|
|
// Try to get groundCheck.
|
|
|
|
|
groundCheck = GetComponentInChildren<GroundCheck>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Awake()
|
|
|
|
|
{
|
|
|
|
|
// Get rigidbody.
|
|
|
|
|
rigidbody = GetComponent<Rigidbody>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void LateUpdate()
|
|
|
|
|
{
|
|
|
|
|
// Jump when the Jump button is pressed and we are on the ground.
|
|
|
|
|
if (Input.GetButtonDown("Jump") && (!groundCheck || groundCheck.isGrounded))
|
|
|
|
|
{
|
|
|
|
|
rigidbody.AddForce(Vector3.up * 100 * jumpStrength);
|
|
|
|
|
Jumped?.Invoke();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|