Feature: Changable Movement Keys in Editor

This commit is contained in:
Arlo Filley 2024-04-28 18:52:09 +01:00
parent 91e43f9b3a
commit 4e51e6d212

View File

@ -1,3 +1,4 @@
using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
@ -11,8 +12,16 @@ public class Movement : MonoBehaviour
public float gravity = 9.8f; public float gravity = 9.8f;
public PickUpObject throwForce; public PickUpObject throwForce;
private CharacterController controller; public CharacterController controller;
private Vector3 moveDirection = Vector3.zero; public Vector3 moveDirection = Vector3.zero;
[Header("Keybinds")]
public KeyCode forwardsKey = KeyCode.W;
public KeyCode backwardsKey = KeyCode.S;
public KeyCode leftKey = KeyCode.A;
public KeyCode rightKey = KeyCode.D;
public KeyCode sprintKey = KeyCode.LeftShift;
public KeyCode jumpKey = KeyCode.Space;
void Start() void Start()
{ {
@ -21,27 +30,33 @@ public class Movement : MonoBehaviour
void Update() void Update()
{ {
if (controller.isGrounded) float forwards = Convert.ToSingle(Input.GetKey(forwardsKey));
float backwards = Convert.ToSingle(Input.GetKey(backwardsKey));
float left = Convert.ToSingle(Input.GetKey(leftKey));
float right = Convert.ToSingle(Input.GetKey(rightKey));
moveDirection = new Vector3(right - left, 0, forwards - backwards);
if (!controller.isGrounded)
{ {
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
return;
}
throwForce.throwForce = 4.0f;
// Change the direction the player is facing based on the direction they are moving // Change the direction the player is facing based on the direction they are moving
if (Input.GetAxis("Horizontal") != 0 || Input.GetAxis("Vertical") != 0) if (moveDirection != Vector3.zero)
{ {
Quaternion ToRotation = Quaternion.LookRotation(new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"))); Quaternion ToRotation = Quaternion.LookRotation(new Vector3(right - left, 0, forwards - backwards));
throwForce.throwForce = 8.5f; throwForce.throwForce = 8.5f;
transform.rotation = Quaternion.RotateTowards(transform.rotation, ToRotation, turnSpeed * Time.deltaTime); transform.rotation = Quaternion.RotateTowards(transform.rotation, ToRotation, turnSpeed * Time.deltaTime);
} }
else
{
throwForce.throwForce = 4.0f;
}
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); if (Input.GetKey(sprintKey))
if (Input.GetKey(KeyCode.LeftShift))
{ {
moveDirection *= sprintSpeed; moveDirection *= sprintSpeed;
jumpForce = 4.0f; jumpForce = 4.0f;
if(Input.GetAxis("Horizontal") != 0 || Input.GetAxis("Vertical") != 0) if(moveDirection != Vector3.zero)
{ {
throwForce.throwForce = 20.0f; throwForce.throwForce = 20.0f;
} }
@ -52,11 +67,10 @@ public class Movement : MonoBehaviour
jumpForce = 2.5f; jumpForce = 2.5f;
} }
if (Input.GetButton("Jump")) if (Input.GetKeyDown(jumpKey))
{ {
moveDirection.y = jumpForce; moveDirection.y = jumpForce;
} }
}
moveDirection.y -= gravity * Time.deltaTime; moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime); controller.Move(moveDirection * Time.deltaTime);