Шар в невесомости

Программирование на Юнити.

Шар в невесомости

Сообщение Kuzy 06 мар 2011, 12:20

На сцене:
Сфера:
Sphere Collider
Material: Rubber

Rigidbody
Mass: 1
Drag: 0
Angular drag: 0
Use Gravity: false

Скрипт
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class BallStart : MonoBehaviour
{
       
        public float speed = 10.0f;
       
        void Start ()
        {
                rigidbody.AddForce(new Vector3(0,-speed,0));
        }
       
        void Update ()
        {
               
        }
}
 



Стенка (куб):
Box Collider
Material: Rubber


Шар сталкивается со стенкой и останавливается, а должен отскакивать. Что не так сделал?
Аватара пользователя
Kuzy
UNец
 
Сообщения: 17
Зарегистрирован: 14 янв 2011, 16:46

Re: Шар в невесомости

Сообщение Ert Donuell 06 мар 2011, 12:40

Попробуйте задать скорость побольше. Например, 100.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Шар в невесомости

Сообщение Kuzy 06 мар 2011, 13:58

Не помогает
Аватара пользователя
Kuzy
UNец
 
Сообщения: 17
Зарегистрирован: 14 янв 2011, 16:46

Re: Шар в невесомости

Сообщение HacKeR 06 мар 2011, 14:07

попробуй физикс материал поставить Bounce
HacKeR
UNIверсал
 
Сообщения: 360
Зарегистрирован: 12 ноя 2010, 21:14

Re: Шар в невесомости

Сообщение Kuzy 06 мар 2011, 14:16

Ставил, тоже самое, вообще при смене материала поведение объектов не изменяется
Аватара пользователя
Kuzy
UNец
 
Сообщения: 17
Зарегистрирован: 14 янв 2011, 16:46

Re: Шар в невесомости

Сообщение Paul Siberdt 06 мар 2011, 14:17

Материал "резина" означает не "каучуковые отксоки", а, наоборот, коэффициент трения = 1.0, то бишь, гашение любого импульса.

Поставьте обеим поверхностям, как посоветовали, материал Bounce.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Шар в невесомости

Сообщение Kuzy 06 мар 2011, 14:24

Ставил Bouncy, шар так-же просто останавливается
Аватара пользователя
Kuzy
UNец
 
Сообщения: 17
Зарегистрирован: 14 янв 2011, 16:46

Re: Шар в невесомости

Сообщение Paul Siberdt 06 мар 2011, 14:33

Выкладывайте пак или архив с тестовой сценой, видимо, где-то ляп спрятался :)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Шар в невесомости

Сообщение Kuzy 06 мар 2011, 14:52

Аватара пользователя
Kuzy
UNец
 
Сообщения: 17
Зарегистрирован: 14 янв 2011, 16:46

Re: Шар в невесомости

Сообщение Paul Siberdt 06 мар 2011, 15:21

Вообщем, это было для меня несколько неожиданно... оказалось, что в "физическом кадре" при отсутствии действующей силы (или, возможно, чего-то, связанного с ускорением) механизм сохранения имульса не рассчитывается. Потому, при отсутствии гравитации, надо прикладывать силу в каждом фиксед-апдейте ( и по вкусу тормозить ее drag-дэмпингом )

Мне-таки кажется, что это хрень, ибо сколько себя помню - пуляешь силой шарик в невесомости и тот пошел стучаться и крутиться о себе подобных.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Шар в невесомости

Сообщение Zaicheg 06 мар 2011, 15:35

Павел, или я тебя неправильно понял или тебе надо посмотреть необязательный параметр ForceMode у метода AddForce(Vector3 force, ForceMode mode), в частности значение ForceMode.Impulse.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Шар в невесомости

Сообщение Paul Siberdt 06 мар 2011, 15:37

Я вот сижу и втыкаю в форс-моды... и не могу увериться, что работает хоть какой-либо из них :-\
Отключаем гравитацию и получаем ерундистику... давно не сидел с физикой, не помню такого поведения.

Update:
Все заработало.
- Можно вешать силу лишь на старте, с флагом ForceMode.Impulse или ForceMode.VelocityChange, но значение придется слегка подрулить.
- Можно вешать силу в каждом фиксед апдейте, но это уже будет отчасти реактивный двигатель :)

Конфуций у меня вышел из-за того, что я длительные форсмоды (Force и Acceleration) вешал на старте и не понимал, чего это они не работают :)

Однако, я не понимаю, почему вне гравитации, приложенная на старте сила (по умолчанию, без форсмодов) полностью гасится от коллизии?
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Шар в невесомости

Сообщение Kuzy 06 мар 2011, 16:07

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class BallStart : MonoBehaviour
{
        public float speed = 10.0f;
       
        void Start ()
        {
                rigidbody.AddForce(new Vector3(0,-speed,0), ForceMode.Impulse);
        }
}
 


Чето я не то написал, шар останавливается при столкновении

С фиксед абдейтом шар отскакивает, но с ускорением(
Аватара пользователя
Kuzy
UNец
 
Сообщения: 17
Зарегистрирован: 14 янв 2011, 16:46

Re: Шар в невесомости

Сообщение Paul Siberdt 06 мар 2011, 16:52

При использовании импульса, уменьшите массу или увеличьте силу. Или ставьте вместо импульса VelocityChange.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Шар в невесомости

Сообщение Kuzy 06 мар 2011, 17:16

Бред какой то, c ForceMode.VelocityChange шарик нормально прыгает если скорость поставить больше 3-х, иначе просто останавливается.
Аватара пользователя
Kuzy
UNец
 
Сообщения: 17
Зарегистрирован: 14 янв 2011, 16:46

След.

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot] и гости: 2