Files
HX_MapEditor/Assets/Scripts/UI/UICellInfo.cs
2025-06-17 00:23:38 +08:00

116 lines
3.5 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
///格子信息 - 绿色块
///功能:加载格子数据,重新计算格子,显示格子,隐藏格子
public class UICellInfo : MonoBehaviour
{
public static UICellInfo Instance;
public Text txtMapWidth;
public Text txtMapHeight;
public Text txtTotalCells;
public Text txtMoveCells;
public Text txtCellRows;
public Text txtCellCols;
public InputField txtCellWidth;
public InputField txtCellHeight;
public bool bMapOpened;
private void Awake()
{
Instance = this;
}
private void Start()
{
Cleanup();
}
void Cleanup()
{
txtMapWidth.text = string.Empty;
txtMapHeight.text = string.Empty;
txtTotalCells.text = string.Empty;
txtMoveCells.text = string.Empty;
txtCellRows.text = string.Empty;
txtCellCols.text = string.Empty;
txtCellWidth.text = string.Empty;
txtCellHeight.text = string.Empty;
bMapOpened = false;
}
public void CloseMap()
{
Cleanup();
UIWindow.Instance.uiCellEditor.togEdit.isOn = false;
UIWindow.Instance.uiCellEditor.togPathTest.isOn = false;
}
public void ShowCells()
{
MapManager.Instance.ShowMapGrid();
}
public void HideCells()
{
MapManager.Instance.HideMapGrid();
}
public void ShowMapCellInfo()
{
if (MapManager.Instance.map == null || MapManager.Instance.map.selector == null)
return;
if(MapManager.Instance._curMapRegions == null) return;
txtMapWidth.text = MapManager.Instance._curMapRegions.regionColNum.ToString();
txtMapHeight.text = MapManager.Instance._curMapRegions.regionRowNum.ToString();
txtCellRows.text = MapManager.Instance.map.selector.horizontalNumber.ToString();
txtCellCols.text = MapManager.Instance.map.selector.verticalNumber.ToString();
txtTotalCells.text = MapManager.Instance.map.selector.totalNumber.ToString();
txtCellWidth.text = MapManager.widthPixel.ToString();
txtCellHeight.text = MapManager.heightPixel.ToString();
txtMoveCells.text = MapManager.Instance.map.selector.moveNum.ToString();
}
public void CalculationCells()
{
if (!bMapOpened)
return;
if (string.IsNullOrEmpty(txtMapWidth.text)
|| string.IsNullOrEmpty(txtMapWidth.text)
|| string.IsNullOrEmpty(txtCellHeight.text)
|| string.IsNullOrEmpty(txtCellHeight.text))
{
UIWindow.Instance.ShowMessage("请输入有效数字");
return;
}
int mapWidth = Convert.ToInt32(txtMapWidth.text);
int mapHeight = Convert.ToInt32(txtMapHeight.text);
int cellWidth = Convert.ToInt32(txtCellWidth.text);
int cellHeight = Convert.ToInt32(txtCellHeight.text);
if (mapWidth <= 0 || mapHeight <= 0 || cellWidth <= 0 || cellHeight <= 0)
{
UIWindow.Instance.ShowMessage("请输入大于0的数值");
return;
}
CalculationCells(mapWidth, mapHeight, cellWidth, cellHeight);
}
public void CalculationCells(int mapWidth, int mapHeight, int cellWidth, int cellHeight)
{
int row = mapHeight / cellHeight;
int col = mapWidth / cellWidth;
txtCellRows.text = row.ToString();
txtCellCols.text = col.ToString();
txtTotalCells.text = (row * col).ToString();
MapManager.Instance.CalculationCells(cellWidth, cellHeight, mapWidth, mapHeight);
}
}