BadCats
@BadCats

Преобразование координат(преобразование графика функций) для движения персонажа в unity?

Всем привет, вот код клавиши 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;
            }

Вод ход моих рассуждений на этот счет
5822d4be77b74e09ba9ff9d2bcb03a89.JPG
(синяя стрелка - движение при нажатии клавиши A)
Шаг №2 основан согласно преобразованию
2ade1eab17a7415987e176a7f5517979.JPG
именно это, я и пытаюсь реализовать данной клавише, но почему то не выходит.
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
TheTalion
@TheTalion
Посмотрите уроки на ютубе как делают движение персонажам. Это одна из самых простых задач.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы