Суббота, 23 Ноября 2024, 18:54

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Помогите решить проблему с передвижением!
dzrone3488Дата: Суббота, 06 Октября 2018, 01:50 | Сообщение # 1
участник
Сейчас нет на сайте
И так... Не так давно задал вопрос, который пришлось всё-таки решать самому. Тут у меня даже нет предположений, поскольку с такой штукой работаю в первый раз. Суть такова - мой игрок меняет вращение по X и Z при изменении угла поверхности (IK я пробовал использовать, но не чем хорошим это не закончилось). Когда поднимаешься в горку - всё просто отлично, ну а когда спускаешься - в целом нечего не меняется вообще, да вот только результат меня не устраивает. В общем я видео внизу оставлю, там собственно сами можете всё увидеть. Также приложу часть кода (Весь скрипт выкладывать нету смысла потому что 362 строки). Буду очень благодарен за помощь! lovegcup

Само видео


Код

RaycastHit normal;
  if (Physics.Raycast(new Ray(transform.position + new Vector3(0,0.5f,0),Vector3.down),out normal, 1))
  {
   Vector3 vec = new Vector3(0, -normal.normal.z,normal.normal.y);
   bodyAngle.rotation = Quaternion.LookRotation(vec);
   bodyRotation = bodyAngle.eulerAngles;
   transform.eulerAngles = new Vector3(Mathf.LerpAngle(transform.eulerAngles.x,bodyAngle.rotation.x * Mathf.Rad2Deg * 1.2f,10 * Time.deltaTime),transform.eulerAngles.y,Mathf.LerpAngle(transform.eulerAngles.z,bodyAngle.rotation.z * Mathf.Rad2Deg * 1.2f,10 * Time.deltaTime));
  }


З.Ы - Сразу отвечу, почему я умножаю угл на 1.2. Это корректировка. Без неё персонаж меняет положение, но не ровно под поверхность


Я делаю игры, а вы в них играете! :)
Моя группа по созданию игр - www.vk.com/dzrone



Сообщение отредактировал dzrone3488 - Суббота, 06 Октября 2018, 01:53
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг