Четверг, 02 Мая 2024, 19:59

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » проблемы при ограничении скорости
проблемы при ограничении скорости
HuruffusДата: Вторник, 23 Июля 2013, 12:14 | Сообщение # 1
был не раз
Сейчас нет на сайте
Всем, здравствуйте)

Я написал код, ограничивающий скорость персонажа по оси "Z". Но вместе с этим и ограничил по другим осям.

код такой:
Код
public void controlVelocity()
     {
      float velValue, velValueDisable;
      velValue = 4.5F;     //скорость, на которой нужно ограничить скорость персонажа
      velValueDisable = velValue-0.01F;     //скорость, получаемая персонажа, после отпускания кнопки движения
      if(Sphere.velocity.z > velValue)      //Sphere = gameObject.rigidbody
      {
       Sphere.velocity = new Vector3(Sphere.velocity.x,Sphere.velocity.y,velValue);     
       if(!butRight)
        Sphere.velocity = new Vector3(Sphere.velocity.x,Sphere.velocity.y,velValueDisable);      //проблема здесь. вторая переменная блокирует прыжок, который задаётся этим кодом: rigidbody.AddForce(0, UpV, 0, ForceMode.Impulse);
      }
      if(Sphere.velocity.z < -velValue)
      {
       Sphere.velocity = new Vector3(Sphere.velocity.x,Sphere.velocity.y,-velValue);     
       if(!butRight)
        Sphere.velocity = new Vector3(Sphere.velocity.x,Sphere.velocity.y,-velValueDisable);
      }
     }


Как разблокировать ось "Y". Если ввести изменяющуюся переменную, то как она должна выглядеть? как её менять?


jonarhipov.blogspot.com
vk.com/jonarhipov
jonarhipov@gmail.com


Сообщение отредактировал Huruffus - Вторник, 23 Июля 2013, 14:09
pixeyeДата: Вторник, 23 Июля 2013, 12:16 | Сообщение # 2
Red Winter Software
Сейчас нет на сайте
Цитата (Huruffus)
Я написал код, ограничивающий скорость персонажа по оси "Z". Но вместе с этим и ограничил по другим осям.


Vector.Lerp
Math.Lerp

Гугли.


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю

HuruffusДата: Вторник, 23 Июля 2013, 16:29 | Сообщение # 3
был не раз
Сейчас нет на сайте
Я знаю, как ими пользоваться. Но куда вы посоветуете их вставить? К примеру: Mathf.Lerp (Sphere.velocity.y, UpV, 0.5) - ничего не изменится. Да, скорость повышения высоты станет отличной от "0", но она будет зависеть от скорости по оси "Z". Это не правильно.

Я же пытаюсь сделать так, чтобы координата "Y" изменялась при нажатии на кнопку "прыжок". Это должно примерно выглядеть так: Sphere.velocity = new Vector3(Sphere.velocity.x, Sphere.velocity.y + *изменяющаяся Velocity во время прыжка* ,velValueDisable);

Добавлено (23.07.2013, 12:39)
---------------------------------------------
Лучше по-другому задать вопрос: Как не менять скорость по оси "Y"?

Добавлено (23.07.2013, 16:29)
---------------------------------------------
решил. в этот код нужно просто добавить функцию прыжка в исполняемую часть после условия


jonarhipov.blogspot.com
vk.com/jonarhipov
jonarhipov@gmail.com
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » проблемы при ограничении скорости
  • Страница 1 из 1
  • 1
Поиск:

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