Как убрать определенную силу на Rigidbody

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

Как убрать определенную силу на Rigidbody

Сообщение Unit4ik 14 янв 2018, 14:12

Привет всем
Не могу понять как убрать силу которая приводит объект в движение.
У меня дела обстоят так . Есть бомба с Exploision которая падает с неба . Но должна быть безопасная зона где Exploision не сможет взаимодействовать с Rigidbody.

Хотел сделать так

Синтаксис:
Используется csharp

//При вход в безопасную зону
void OnTriggerEnter(Collider col)
    {
        GameObject cols = col.gameObject;
        Rigidbody cast = cols.GetComponent<Rigidbody>();
        Engine game = cols.GetComponent<Engine>();
        if (cast != null)
        {
            cast.isKinematic = true;
        }
    }
 

Но когда мой объект движется внутри зоны он проходит через все стены и терайн
Unit4ik
UNец
 
Сообщения: 2
Зарегистрирован: 14 янв 2018, 14:05

Re: Как убрать определенную силу на Rigidbody

Сообщение Arsenii 28 янв 2018, 19:08

IsKinematic здесь лишний, он вызывает эти баги.
Можно применять Exploision только к объектам с какими то параметрами которые зависят от того во что вошел объект.

Пример
Синтаксис:
Используется csharp
public bool isProtected;

void OnTriggerEnter(Collider col)
{
    if (col.name == "SuperProtection")
    {
        isProtected = true;
    }
}

void OnTriggerExid(Collider col)
{
    if (col.name == "SuperProtection")
    {
        isProtected = false;
    }
}
 
Аватара пользователя
Arsenii
UNец
 
Сообщения: 26
Зарегистрирован: 01 ноя 2017, 21:30


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9