Физика батута [РЕШЕНО]

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

Физика батута [РЕШЕНО]

Сообщение Maran 09 июн 2018, 08:55

Есть 2d игра. В ней мяч и 2 батута (кубы с физ. материалом и упругостью) под и над мячом. Мяч падает сверху на нижний батут. Если упругость до 1.5, мяч несильно высоко отпрыгнет от батута. Но если чуть увеличить эту самую упругость, то мяч долетит до верхнего батута и начнет скакать между батутами. Очень быстро скорость станет огромной и даже при continious collisions мяч проскочит через батут.
Как этого избежать? Уменьшить упругость, до 1 и ниже? Но тогда мяч слабо прыгает. Уменьшить массу мяча? Тогда в свободном падении он падает медленно. Какой еще параметр можно изменить? ЗЫ пробовал добавить мячу найденный в инете скрипт DoNotGoThrough, но он вообще очень сильно гасит скорость.
Последний раз редактировалось Maran 15 июн 2018, 23:54, всего редактировалось 1 раз.
Maran
UNец
 
Сообщения: 13
Зарегистрирован: 01 мар 2018, 18:47

Re: Физика батута

Сообщение Maran 09 июн 2018, 21:57

нашел решение
Maran
UNец
 
Сообщения: 13
Зарегистрирован: 01 мар 2018, 18:47

Re: Физика батута

Сообщение Norman 10 июн 2018, 08:49

Maran писал(а):нашел решение

Спасибо что поставили в известность :)
Но будет ещё лучше если поделитесь этим решением, вопрос интересует.
Norman
UNIт
 
Сообщения: 111
Зарегистрирован: 31 мар 2017, 18:38

Re: Физика батута

Сообщение Maran 15 июн 2018, 20:31

Norman писал(а):
Maran писал(а):нашел решение

Спасибо что поставили в известность :)
Но будет ещё лучше если поделитесь этим решением, вопрос интересует.

Да, конечно)
Возможно, не самое правильное, но делаю батут триггером и вешаю на него скрипт
Синтаксис:
Используется csharp
using UnityEngine;

public class Batut : MonoBehaviour {
   
    public float power = 2f;
    public float maxSpeed = 25f;

    void OnTriggerEnter2D(Collider2D collision)
    {
        var rb = collision.gameObject.GetComponent<Rigidbody2D>();
        rb.velocity = -rb.velocity;
        if (rb.velocity.magnitude <= maxSpeed)
            rb.velocity *= power;

    }
   
}

maxSpeed - ограничение по скорости, мне нужно для того, чтоб объект не разогнался слишком сильно и не проходил сквозь стены)
Maran
UNец
 
Сообщения: 13
Зарегистрирован: 01 мар 2018, 18:47


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

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

Сейчас этот форум просматривают: GoGo.Ru [Bot] и гости: 9