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
именно это, я и пытаюсь реализовать данной клавише, но почему то не выходит.
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
TheTalion
@TheTalion
Посмотрите уроки на ютубе как делают движение персонажам. Это одна из самых простых задач.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы