Всем привет, вот код клавиши D , который реализует с горем-пополам движение персонажа в сторону(точнее получилось по диагонали, но не суть)
if (Input.GetKey(KeyCode.D))
{
PosZ = PosZ + speed+PosZ* Time.deltaTime;
Newpos = PosZ;
Vector3 directionD = new Vector3(Newpos*-1, hero.transform.position.y*-gravity, hero.transform.position.z);
hero.Move(directionD*Time.deltaTime);
lastPressedDTimeD = Time.time;
if (Time.time - lastPressedDTimeA < threshold)
{
PosZ = PosZ + PosZ * -1;
}
}
А вот код клавиши A работает некорректно- персонаж двигается не в ту сторну
if (Input.GetKey(KeyCode.A))
{
PosZ = PosZ + speed+PosZ * Time.deltaTime;//к текущей позиции добавили в направлении вперед немного))
Newpos = PosZ;
Vector3 directionA = new Vector3(Mathf.Sqrt(Newpos), hero.transform.position.y * -gravity,hero.transform.position.z);/*= new Vector3((Newpos * -1) * Mathf.Sqrt(Newpos * -1)*/
lastPressedDTimeA = Time.time;
hero.Move(directionA * Time.deltaTime);
if (Time.time - lastPressedDTimeD < threshold)
{
PosX = PosX + PosX * -1;
}
Вод ход моих рассуждений на этот счет
(синяя стрелка - движение при нажатии клавиши A)
Шаг №2 основан согласно преобразованию
именно это, я и пытаюсь реализовать данной клавише, но почему то не выходит.