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 раз - в момент нажатия и объект который создаётся НЕ является дочерним игроку