2016-05-28 5 views
1

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

using UnityEngine; 
using System.Collections; 

public class Asteroid : MonoBehaviour { 

    void Start() { 

     print ("class initiated"); 

    } 

    void onTriggerEnter2D (Collider2D collider) { 

     Debug.Log (collider); 

    } 

} 

Пуля GameObject имеет, кинематических и включена Trigger, и имеет Rigidbody 2D и Box Collider 2D прилагается. Астероид GameObject имеет двумерный 2D и круговой коллайдер 2D, а Kinematic и Trigger не установлен.

ответ

1

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

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

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

+1

О, ничего себе, я чувствую себя глупо. Спасибо! –