格子扩展

This commit is contained in:
tangbin
2025-07-31 10:52:46 +08:00
parent 9331a51652
commit 05abbd21ee
2 changed files with 26 additions and 1 deletions

View File

@@ -120,7 +120,7 @@ public class GridSelector : MonoBehaviour
inputbuffer.Release();
}
}
private int GetIndexByXY(int x, int y) {
public int GetIndexByXY(int x, int y) {
int index = x + y * horizontalNumber;
return index;
}

View File

@@ -4,6 +4,7 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.VFX;
using static GridSelector;
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ - <20><>ɫ<EFBFBD><C9AB>
///<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>
@@ -87,11 +88,35 @@ public class UICellInfo : MonoBehaviour
/// </summary>
public void ReCalculateCell()
{
int oldhorizontalNumber = MapManager.Instance.map?.selector?.horizontalNumber ?? 0;
int oldverticalNumber = MapManager.Instance.map?.selector?.verticalNumber ?? 0;
var oldRendData = MapManager.Instance.map?.selector?.GetGridData();
int width = int.Parse(txtCellRows.text);
int height = int.Parse(txtCellCols.text);
float cellW = int.Parse(txtCellWidth.text) / 100.0f;
float cellH = int.Parse(txtCellHeight.text) / 100.0f;
MapManager.Instance.GenerateMap(MapManager.Instance._curOpenMapId,width * cellW, height * cellH, cellW, cellH);
var newRendData = MapManager.Instance.map?.selector?.GetGridData();
for (int i = 0; i < MapManager.Instance.map?.selector.horizontalNumber; i++)
{
for (int j = 0; j < MapManager.Instance.map?.selector.verticalNumber; j++)
{
if (i < oldhorizontalNumber && j < oldverticalNumber)
{
int oldindex = i + j * oldhorizontalNumber;
//ȡ<><C8A1><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
int index = MapManager.Instance.map.selector.GetIndexByXY(i, j);
newRendData[index] = oldRendData[oldindex];
}
else {//<2F>¸<EFBFBD><C2B8><EFBFBD>
int index = MapManager.Instance.map.selector.GetIndexByXY(i, j);
newRendData[index] = new RenderData();
newRendData[index].barrier = (int)CellType.Obstacle;
}
}
}
MapManager.Instance.map.selector.RefreshPlaneRender();
ShowMapCellInfo();
}
public void Update()