Problem z wykrywaniem kolizji.

Ogólne pytania na temat Unity3D

Problem z wykrywaniem kolizji.

Postprzez TreektusPL » 01 Paź 2020, 12:02

Cześć.

Pracując nad kolejnym projektem napotkałem się na błąd związany z collider'ami. Obecnie stworzyłem system poruszania się obiektu do góry i wykrywania kolizji:
Kod: Zaznacz wszystko
    private float playerSpeed = 1;

    private void Update()
    {
        if (!game.getPause())
        {
            transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(0, 1), playerSpeed * Time.deltaTime);
        }
    }

   private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.name == "PathMaterial")
        {
            game.setPause(true);
            Debug.Log("DEATH");
        }
    }


Na drodze obiektu poruszającego się do góry pojawia się drugi obiekt wraz z komponentem "Edge Collider 2D" i podczas kolizji wykonuje się prawidłowo funkcja OnTriggerEnter2D i obiekt poruszający się do góry staje w miejscu kolizji. Problem pojawia się, gdy zwiększę prędkość poruszanego obiektu. Dla przykładu ustawiając wartość zmiennej playerSpeed na 50, obiekt poruszający się do góry przeleci przez drugi obiekt i funkcja OnTriggerEnter2D się nie wykona. Czy da rade zwiększyć sprawność sprawdzania, czy obiekt wszedł w kolizję z drugim obiektem?
TreektusPL
 
Posty: 48
Rejestracja: 23 Wrz 2018, 20:16
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z wykrywaniem kolizji.

Postprzez Ether_141 » 01 Paź 2020, 15:29

Zmień typ wykrywania kolizji na Continuous.

https://docs.unity3d.com/ScriptReferenc ... nMode.html
Awatar użytkownika
Ether_141
 
Posty: 524
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time


Wróć do Wsparcie Unity

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość

cron