Unity C # Collision - PullRequest
       1

Unity C # Collision

0 голосов
/ 04 марта 2019

Как мне создать скрипт для обнаружения столкновений между двумя объектами.Вот мой код:

using UnityEngine;

public class PlayerCollision : MonoBehaviour
{
    public PlayerMovement movement;

    void OnCollisionEnter (Collision collisionInfo)
    {
        if (collisionInfo.collider.tag == "Obstacle")
        {
            movement.enabled = false;
        }
    }
}

1 Ответ

0 голосов
/ 04 марта 2019

Судя по https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html, нет ничего плохого в написанном вами коде.

Распространенная причина, по которой эти методы не работают, заключается в том, как вы обрабатываете движение (в этомcase) в вашем скрипте PlayerMovement.

Если вы изменяете позицию преобразования, например, непосредственно через свойство position, физические операции, такие как столкновения, не рассчитываются.https://docs.unity3d.com/ScriptReference/Transform-position.html

Другая распространенная причина заключается в том, что к одному из объектов не прикреплено твёрдое тело, поэтому операции столкновения не запускаются.

См. Раздел «Матрица действий при столкновении» здесь.: https://docs.unity3d.com/Manual/CollidersOverview.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...