public void CreateBuilding(BuildingModel model, Vector2 gridPosition, Vector3 worldPosition)
        {
            GameObject building = Instantiate(model.Mesh, transform);

            Assert.IsNotNull(building, "Can't create building: " + model.Mesh.name);

            building.transform.position = worldPosition;

            SelectedCellView landCell = Instantiate <SelectedCellView>(_landTemplate, building.transform);

            landCell.Model = model;

            _gridModel.Set((int)gridPosition.x, (int)gridPosition.y, model);
        }
Example #2
0
    private void Awake()
    {
        Assert.IsNotNull(_raycaster, "You must specify a raycaster");
        Assert.IsNotNull(_selectedCellObject, "You must provide an object to highlight the landing place of the building");

        _selectedCell = _selectedCellObject.GetComponent <SelectedCellView>();

        _sharedData = SharedModels.GetWriteableModel <SharedDataModel>();
        _sharedData.SelectedBuilding.OnChange += OnSelectedBuildingChange;

        _gridModel = SharedModels.Get <IGridModel <BuildingModel> >();

        _scaledCell = new Vector3(
            (_cellSize.x * transform.localScale.x) / _gridModel.Rows,
            0f,
            (_cellSize.y * transform.localScale.z) / _gridModel.Columns);

        _scaledOffset = new Vector3(
            (_cellSize.x / 2f) * transform.localScale.x,
            0f,
            (_cellSize.y / 2f) * transform.localScale.z);
    }