OnCollisionEnter не вызывается, когда это должно быть - PullRequest
0 голосов
/ 31 октября 2019

Мой скрипт не работает, несмотря на возможность компиляции. Когда игровой объект сталкивается с игровым объектом с именем «Монета», он должен Debug.log("my message") в консоли, но сообщение не регистрируется, что означает, что с монетой не происходит столкновения. Он не будет работать, даже когда я перетаскиваю его на игровой объект. Пожалуйста помоги. Вот код:

using UnityEngine;

public class DestroyCoin : MonoBehaviour
{  
    //Detect collisions between the GameObjects with Colliders attached
    void OnCollisionEnter(Collision col)
    {
        if (col.gameObject.name == "Coin") { 
            Debug.Log("Collision Detected");
        }    
    }
}

Ответы [ 2 ]

0 голосов
/ 03 ноября 2019

Я решил проблему, мне пришлось поменять скрипт прикрепления чего-либо к монете (я покажу новый скрипт через секунду). Добавьте в монету обычный коллайдер. Добавьте к нему триггерный коллайдер. И это следующий код!

'с использованием UnityEngine;

открытый класс DestroyCoin: MonoBehaviour {

 private void OnTriggerEnter2D(Collider2D other)
{
    if (other.gameObject.CompareTag("Player"))
    {
        Debug.Log("Collision Detected");
    }
}

} <Добавьте это в скрипт в самом конце. </p>

Спасибо ВСЕМ за то, что пытаетесь помочь мне и поддерживаете меня в течение этого длительного процесса. Вы все привели меня к этой идее. <3 </p>

0 голосов
/ 01 ноября 2019

Вам необходимо использовать «OnCollisionEnter2D».

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