Не удается неявно преобразовать тип "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));
}
}
}
}