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 добавит эту функцию для вас.