So I have a movement script here and I want it to make it so when I press the left control key it cuts the movement speed in half. The code I have here does do that but when I let go of the left control key it leaves the slowed float at 0.5. I’m really new to programming and I can’t figure out a way to make the value easily return back to 1 when the key is not pressed. I have my code below just so you guy’s can see everything that’s going on.
using UnityEngine;
using System.Collections;
public class PlayerControl : MonoBehaviour
{
public float movementSpeed = 1.5f;
public float slowed = 1f;
void Update () {
if(Input.GetKey(KeyCode.UpArrow))
{
this.transform.Translate(new Vector2(0,1) * (movementSpeed * slowed) * Time.deltaTime);
}
if (Input.GetKey(KeyCode.DownArrow))
{
this.transform.Translate(new Vector2(0,-1) * (movementSpeed * slowed) * Time.deltaTime);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
this.transform.Translate(new Vector2(-1,0) * (movementSpeed * slowed) * Time.deltaTime);
}
if (Input.GetKey(KeyCode.RightArrow))
{
this.transform.Translate(new Vector2(1,0) * (movementSpeed * slowed) * Time.deltaTime);
}
if (Input.GetKey(KeyCode.LeftControl))
{
slowed = 0.5f;
}
}
}