Вторник, 24 Декабря 2024, 02:44

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проблемка физики
d0xДата: Вторник, 30 Декабря 2014, 13:30 | Сообщение # 1
частый гость
Сейчас нет на сайте
Подскажите пожалуйста, есть объект, пытаюсь сделать так чтобы он прыгал, но получается так что когда кнопка зажата он летит выше и выше.
Код
if(inputDevice.Action2){
    rigidbody.AddForce(Vector3.up * jump);
    transform.position += Vector3.up * Time.deltaTime * jump;  
  }

Добавлено (30 декабря 2014, 13:30)
---------------------------------------------
когда не добавляю rigidbody.AddForce, то он при отпускании кнопки прыжка резко летит вниз, плавности нет.

XoidДата: Вторник, 30 Декабря 2014, 18:09 | Сообщение # 2
почетный гость
Сейчас нет на сайте
проверяйте столкновение с поверхностью
надо разрешать прыгать только когда есть коллизия

http://docs.unity3d.com/ScriptReference/Collider.OnCollisionStay.html


skype:xoid_main | С#/Unity
RangerДата: Вторник, 30 Декабря 2014, 18:57 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
d0x,
Вы уж определитесь или addforce, или transform.position +=.
не смешивайте физику и геометрию.

если
Цитата Xoid ()
 rigidbody.AddForce(Vector3.up * jump);

в апдейте, то сила каждый кадр прикладывается считайте сами




Сообщение отредактировал Ranger - Вторник, 30 Декабря 2014, 19:25
d0xДата: Вторник, 30 Декабря 2014, 19:24 | Сообщение # 4
частый гость
Сейчас нет на сайте
Цитата Ranger ()
d0x,
Вы уж определитесь или addforce, или transform.position +=.
не смешивайте физику и геометрию.

определился, делаю так:

Код
rigidbody.AddForce(Vector3.up * jump * 0.35f, ForceMode.Impulse);

сделал проверку на нажатие кнопки, но все равно когда объект подпрыгнул и если снова нажимать на прыжок он прыгает выше и выше... т.е. отталкивается от воздуха)
MANMANAДата: Вторник, 30 Декабря 2014, 19:58 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
Задачу поставь корректно.
Что тебе нужно?
1. Чтобы объект (например, шар), лежащий на земле, при нажатии кнопки X подпрыгивал бы и опускался на землю.
1.1 Причем, если шар находится в воздухе, то он подпрыгивать не должен.
1.2 Причем при падении шара на землю он также должен сам по себе отскакивать от пола.

Ответ.
1.
Если (нажата кнопочка Хе и шар лежит на земле)
{
добавляем силу вертикально вверх;
}

Для пункта 1.2 добавить Коллайдеру шара материал "Резина"
И да, не забыть добавить шарику RigidBody и коллайдер, а земле коллайдер.


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
d0xДата: Вторник, 30 Декабря 2014, 20:26 | Сообщение # 6
частый гость
Сейчас нет на сайте
Цитата MANMANA ()
Ответ.
1.
Если (нажата кнопочка Хе и шар лежит на земле)
{
добавляем силу вертикально вверх;
}


спасибо)
Vip_and_RipДата: Среда, 31 Декабря 2014, 10:22 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Цитата d0x ()
сделал проверку на нажатие кнопки, но все равно когда объект подпрыгнул и если снова нажимать на прыжок он прыгает выше и выше... т.е. отталкивается от воздуха)

Сделать проверку коллайдера под ногами персонажа, а на кнопку прыжка поставить условие, что бы срабатывала только при наличии соприкосновения с коллайдером.


Больше никогда не буду делать игры.
d0xДата: Среда, 31 Декабря 2014, 11:35 | Сообщение # 8
частый гость
Сейчас нет на сайте
Цитата Vip_and_Rip ()
Сделать проверку коллайдера под ногами персонажа, а на кнопку прыжка поставить условие, что бы срабатывала только при наличии соприкосновения с коллайдером.

ага, так и сделал:) Всем спасибо и с наступающим)

Код
    void Update () {
  if(inputDevice.Action2.WasPressed && Jumping == false ){
    Jumping = true;
    rigidbody.AddForce(Vector3.up * jump * 0.35f, ForceMode.Impulse);
  }
}

void OnCollisionEnter(Collision collis)  
  {  
   if (collis.gameObject.tag == "Platf")  
   {  
    Jumping = false;  
   }  
}
  • Страница 1 из 1
  • 1
Поиск:

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