Есть карта, сгенерированная из перфаба(2д текстура), при создании поочередно дается название ( 1, 2....). Я хотел бы, чтобы мой игрок умел делать что-то с этими блоками. Функция, у персонажа:
public void click()
{
RaycastHit2D rayHit;
rayHit = Physics2D.Raycast(transform.position, transform.right);
Map_Generation map = rayHit.transform.gameObject.GetComponent<Map_Generation>();
if(rayHit)
{
name = rayHit.collider.gameObject.name;
map.search(name);
}
А вот функция search, она висит на пустом объекте Map_Generation:
public void search(string name)
{
ds = GameObject.FindWithTag(name).gameObject;
if (ds != null)
{
Destroy(ds);
Debug.Log("Успех!");
}
else Debug.Log("Полный ноль!");
}
Эта функция не вызывается вообще, сразу пишет ошибку. Я не могу понять в чем дело. Коллайдер на префабе весит.
null. StackTrace исключения подскажет на какой строчке. Дальше выясняете почему в переменной былnull. У вас скорее всего этоmap, потому что компонент на объект забыли повесить. Вообще когда видите исключение смотрите StackTrace, для этого их и делали чтобы ошибки находить. – trollingchar Jul 10 '19 at 14:43