From 521c86dbd4cd67a96794e68d9b41f21a1b899da7 Mon Sep 17 00:00:00 2001 From: JoansLink00 Date: Fri, 23 Jan 2026 18:36:25 +0100 Subject: [PATCH] Slide and Glide --- Assets/Scenes/SampleScene.unity | 6 +++-- Assets/Scripts/Player/PlayerMove.cs | 39 +++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index c2f432b..3bdfddf 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -423,7 +423,7 @@ Transform: m_GameObject: {fileID: 319279591} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -12.2, y: 1.51404, z: 15.37} + m_LocalPosition: {x: 9.4, y: 1.51404, z: 15.37} m_LocalScale: {x: 2, y: 2, z: 2} m_ConstrainProportionsScale: 1 m_Children: [] @@ -1023,9 +1023,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b9bab48a629093449f53dc5ea63d752, type: 3} m_Name: m_EditorClassIdentifier: Assembly-CSharp::PlayerMove + basespeed: 8 speed: 8 - rb: {fileID: 0} + speedincrease: 0.05 StartPos: {x: -15.5, y: 1.23, z: 12.73} + slide: 0.2 --- !u!1 &1262927943 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Player/PlayerMove.cs b/Assets/Scripts/Player/PlayerMove.cs index 63dba2b..09ac436 100644 --- a/Assets/Scripts/Player/PlayerMove.cs +++ b/Assets/Scripts/Player/PlayerMove.cs @@ -1,14 +1,21 @@ using System; +using System.Collections; using UnityEngine; public class PlayerMove : MonoBehaviour { + [SerializeField] private float basespeed; [SerializeField] private float speed; - [SerializeField] private Rigidbody rb; + [SerializeField] private float speedincrease; + private Rigidbody rb; [SerializeField] private Vector3 StartPos; + [SerializeField] private float slide; + + Vector3 moveDirection; bool vertical; bool horizontal; + private void Start() { rb = GetComponent(); @@ -21,26 +28,38 @@ public class PlayerMove : MonoBehaviour horizontalInput = Mathf.Round(horizontalInput); verticalInput = Mathf.Round(verticalInput); - Vector3 moveDirection; + if (horizontalInput != 0 && horizontal == true) { + transform.rotation = Quaternion.Euler(0f, 0f, 90f); vertical = false; moveDirection = new Vector3(horizontalInput,0, 0); moveDirection.Normalize(); + + if (!vertical) + { + speed += speedincrease; + } } else if (verticalInput != 0 && vertical == true) { + transform.rotation = Quaternion.Euler(90f, 0f, 0f); horizontal = false; moveDirection = new Vector3(0, 0, verticalInput); moveDirection.Normalize(); + + if (!horizontal) + { + speed += speedincrease; + } } else { - moveDirection = new Vector3(0, 0, 0); - horizontal = true; - vertical = true; + StartCoroutine(Slide(slide)); + transform.rotation = Quaternion.Euler(0f, 0f, 0f); + } @@ -52,4 +71,14 @@ public class PlayerMove : MonoBehaviour { this.transform.position = StartPos; } + + IEnumerator Slide(float delay) + { + yield return new WaitForSeconds(delay); + moveDirection = new Vector3(0, 0, 0); + horizontal = true; + vertical = true; + speed = basespeed; + + } }