Проблемка физики
|
|
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; } }
|
|
| |