OnTriggerEnter2D не вызывается

Я пытаюсь сделать точную копию астероидов в Unity. Проблема в том, что мои пули не вызывают OnTriggerEnter2D метод на астероидах. К астероидам прикреплен следующий скрипт:

using UnityEngine;
using System.Collections;

public class Asteroid : MonoBehaviour {

    void Start () {

        print ("class initiated"); 

    }

    void onTriggerEnter2D (Collider2D collider) {

        Debug.Log (collider); 

    }

}

Для маркера GameObject включены режимы Kinematic и Is Trigger, а также Rigidbody 2D и Box Collider 2D. Астероид GameObject имеет Rigidbody 2D и Circle Collider 2D, а также является кинематическим и является триггером.

1 ответ

Решение

Проблема в правописании. o в onTriggerEnter2D должен быть написан с большой буквы. Такая простая ошибка может испортить вам день. Я даже не заметил этого, пока не запустил твой код.

void OnTriggerEnter2D(Collider2D collider)
{
    Debug.Log(collider);
}

В следующий раз, если вы не уверены в правильности написания функции обратного вызова Unity, щелкните правой кнопкой мыши в Visual Studio, затем нажмите " Внедрить MonoBehaviours", найдите нужную функцию, выберите ее и нажмите " ОК". Visual Studio добавит эту функцию для вас.

Другие вопросы по тегам