Untitled
unknown
plain_text
2 years ago
1.7 kB
8
Indexable
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
[SerializeField] private Transform groundCheckTransform = null;
[SerializeField] private LayerMask playerMask;
private bool jumpKeyWasPressed;
private float horizontalInput;
private Rigidbody rigidbodyComponent;
private int superJumpsRemaining;
// Start is called before the first frame update
void Start()
{
rigidbodyComponent = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
// check if space key was pressed down
if (Input.GetKeyDown(KeyCode.Space))
{
jumpKeyWasPressed = true;
}
horizontalInput = Input.GetAxis("Horizontal");
}
// FixedUpdate is called once every physic update
private void FixedUpdate()
{
GetComponent<Rigidbody>().velocity = new Vector3(horizontalInput, GetComponent<Rigidbody>().velocity.y, 0);
if (Physics.OverlapSphere(groundCheckTransform.position, 0.1f, playerMask).Length == 0)
{
return;
}
if (jumpKeyWasPressed)
{
float jumpPower = 7f;
if (superJumpsRemaining > 0)
{
jumpPower *= 2;
superJumpsRemaining--;
}
GetComponent<Rigidbody>().AddForce(Vector3.up * jumpPower, ForceMode.VelocityChange);
jumpKeyWasPressed = false;
}
}
private void OnTriggerEnter(Collider other)
{ if (other.gameObject.layer == 9)
{
Destroy(other.gameObject);
superJumpsRemaining++;
}
}
}
Editor is loading...