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