Input.GetKeyDown вызывается каждый кадр

у меня есть код, который при нажатии LeftControl забирает у игрока управление, и пока кнопка зажата двигает игрока вперёд по направлению в которое он смотрел изначально (механика слайда из Ultrakill) но объект принимает вращение игрока каждый кадр, а не при нажатии, вот код:

using System.Collections;
using System.Collections.Generic;
using Unity.Mathematics;
using UnityEngine;

public class Dash : MonoBehaviour
{
    public bool GoFor;
    public GameObject go;
    
    void Start()
    {
        go = Instantiate(new GameObject(), transform.position, transform.rotation);
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.LeftControl))
        {
            GoFor = true;
            this.GetComponent<FirstPersonController>().playerCanMove = false;
            go.transform.rotation = this.transform.rotation;
            print("Click");
        }
        if (Input.GetKeyUp(KeyCode.LeftControl))
        {
           GoFor = false;
            this.GetComponent<FirstPersonController>().playerCanMove = true;
        }
        if (GoFor) 
        {
            transform.Translate(go.transform.forward * 11 * Time.deltaTime);
        }
    }
}

Однако, "Click" в консоль выводится только 1 раз - в момент нажатия и объект который создаётся НЕ является дочерним игроку


Ответы (0 шт):