Не удается неявно преобразовать тип "float" в "int". Существует явное преобразование (возможно, пропущено приведение типов)

Не удается неявно преобразовать тип "float" в "int". Существует явное преобразование (возможно, пропущено приведение типов). Вот код

public class BuildingsGrid : MonoBehaviour
{
    public Vector2Int GridSize = new Vector2Int(1500, 1500);

    public Building[,] grid;
    private Building flyingBuilding;
    public Camera mainCamera;

    
    private void Awake()
    {
        grid = new  Building[GridSize.x, GridSize.y];
        
        mainCamera = Camera.main;
    }

    public void StartPlacingBuilding(Building buildingPrefab)
    {
        if (flyingBuilding != null)
        {
            Destroy(flyingBuilding.gameObject);
        }
        
        flyingBuilding = Instantiate(buildingPrefab);
    }

    public void Update()
    {
        if (flyingBuilding != null)
        {
            var groundPlane = new Plane(Vector3.up, Vector3.zero);
            Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition);

            if (groundPlane.Raycast(ray, out float position))
            {
                Vector3 worldPosition = ray.GetPoint(position);

                float x = Mathf.Round(worldPosition.x);
                float y = Mathf.Round(worldPosition.z);

                //bool available = true;

                //if (x < 0 || x > GridSize.x - flyingBuilding.Size.x) available = false;
                //if (y < 0 || y > GridSize.y - flyingBuilding.Size.y) available = false;

                //if (available && IsPlaceTaken(x, y)) available = false;

                flyingBuilding.transform.position = new Vector3(x, 0, y);


                if (/*available && */Input.GetMouseButtonDown(0))
                {
                    PlaceFlyingBuilding(x, y);
                }


            }
        }
    }
    private void PlaceFlyingBuilding(float placeX, float placeY)
        {
            for (float x = 0; x < flyingBuilding.Size.x; x++)
            {
                for (float y = 0; y < flyingBuilding.Size.y; y++)
                {
                    grid[placeX + x, placeY + y] = flyingBuilding; // РУГАЕТСЯ НА ЭТО
                }
        }






 public Renderer MainRenderer;
    public Vector2Int Size = Vector2Int.one;
    public int level;



    private void OnDrawGizmos()
    {
        for (int x = 0; x < Size.x; x++)
        {
            for (int y = 0; y < Size.y; y++)
            {
                if ((x + y) % 2 == 0) Gizmos.color = new Color(0.88f, 0f, 1f, 0.3f);
                else Gizmos.color = new Color(1f, 0.68f, 0f, 0.3f);

                Gizmos.DrawCube(transform.position + new Vector3(x, 0, y), new Vector3(1, .1f, 1));
            }
        }
    }
}

Ответы (0 шт):