Задать вопрос
@Bruh_Bruh

Почему не вызывается метод?

Не могу понять, почему не вызывается метод CreateBuilding()? Все значения переменных передаются корректно, условие №1 в методе CreateBuildingOnLoad() тоже работает, а вот метод не вызывается... Методы находятся в одном классе, MonoBehaviour есть, скрипт не находится ни на каком объекте(он там не нужен), экземпляр класса создается в другом классе, вроде более-менее описал проблему.
private void CreateBuildingOnLoad(string buildingName, int xPosition, int zPosition)
    {
        // Работает.
        if (buildingName == "Bld_Barn_01")
        {
            // Работает.
            building = buildingsSO[0];
            CreateBuilding(xPosition, zPosition, building);
        }
        else if (buildingName == "Bld_Barn_02")
        {
            building = buildingsSO[1];
            CreateBuilding(xPosition, zPosition, building);
        }
        else if (buildingName == "Bld_Barn_03")
        {
            building = buildingsSO[2];
            CreateBuilding(xPosition, zPosition, building);
        }
    }

    private void CreateBuilding(int xPosition, int zPosition, BuildingSO building)
    {
        // Не работает.
        Vector3 position = new Vector3(xPosition, 0, zPosition);
        Instantiate(building.prefab, position, Quaternion.identity);
        SetBuilding(xPosition / cellSize, zPosition / cellSize, building.width, building.height, building);
    }

Ошибка в консоли:
NullReferenceException: Object reference not set to an instance of an object
Grid.CreateBuildingOnLoad (System.String buildingName, System.Int32 xPosition, System.Int32 zPosition) (at Assets/Scripts/Grid.cs:115)
Grid..ctor (System.Int32 width, System.Int32 height, System.Int32 cellSize) (at Assets/Scripts/Grid.cs:87)
GridBuildingSystem.Start () (at Assets/Scripts/GridBuildingSystem.cs:20)
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Средний 11 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы