summaryrefslogtreecommitdiff
path: root/Assets/Scripts/PlayerMovement.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/PlayerMovement.cs')
-rw-r--r--Assets/Scripts/PlayerMovement.cs51
1 files changed, 51 insertions, 0 deletions
diff --git a/Assets/Scripts/PlayerMovement.cs b/Assets/Scripts/PlayerMovement.cs
new file mode 100644
index 0000000..b0b6874
--- /dev/null
+++ b/Assets/Scripts/PlayerMovement.cs
@@ -0,0 +1,51 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class PlayerMovement : MonoBehaviour
+{
+ public CharacterController controller;
+
+ public float speed = 12f;
+
+ public float gravity = -9.81f;
+
+ public float jumpHeight = 3f;
+
+ public Transform groundCheck;
+
+ public float groundDistance = 0.4f;
+
+ public LayerMask groundMask;
+
+ Vector3 velocity;
+ bool isGrounded;
+
+ // Update is called once per frame
+ void Update()
+ {
+ isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);
+
+ if (isGrounded && velocity.y < 0)
+ {
+ velocity.y = -2f;
+ }
+
+ float x = Input.GetAxis("Horizontal");
+ float z = Input.GetAxis("Vertical");
+
+ Vector3 move = transform.right * x + transform.forward * z;
+
+ controller.Move(move * speed * Time.deltaTime);
+
+ if (Input.GetButtonDown("Jump") && isGrounded)
+ {
+ velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);
+ }
+
+ velocity.y += gravity * Time.deltaTime;
+
+ controller.Move(velocity * Time.deltaTime);
+
+ }
+}