(client) feat:实现行为树条件节点的实际功能

This commit is contained in:
m0_75251201
2025-08-24 17:15:52 +08:00
parent da93368f02
commit 797cf69f75
17 changed files with 937 additions and 752 deletions

View File

@ -0,0 +1,9 @@
using UnityEngine;
namespace Map
{
public class Dimension:MonoBehaviour
{
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1cf2b22a0f934c5b852b5cdd588d82fa
timeCreated: 1756014704

View File

@ -10,13 +10,17 @@ namespace Map
{
public class DoubleMap : MonoBehaviour
{
public List<List<int>> mapData = new();
private List<List<int>> mapData = new();
public Tilemap textureLevel;
public Vector2Int dataOffset = Vector2Int.zero; // 数据起始点偏移变量
// public Vector2Int dataOffset = Vector2Int.zero; // 数据起始点偏移变量 - 已删除
private void Start()
{
Managers.DefineManager.Instance.Init();
Managers.PackagesImageManager.Instance.Init();
Managers.TileManager.Instance.Init();
var size = 100;
InitializeData(size, size);
for (var i = 0; i < size; i++)
@ -44,9 +48,11 @@ namespace Map
{
column.Add(defaultValue);
}
mapData.Add(column);
}
}
// 设置指定数据坐标的瓦片值并刷新相关瓦片
public void SetTile(int dataX, int dataY, int value)
{
@ -100,8 +106,8 @@ namespace Map
if (mapData.Count == 0 || mapData[0].Count == 0) return;
// 计算瓦片地图的有效范围(考虑偏移)
var startX = dataOffset.x;
var startY = dataOffset.y;
var startX = 0; // dataOffset.x 已删除
var startY = 0; // dataOffset.y 已删除
var endX = startX + mapData.Count - 1;
var endY = startY + mapData[0].Count - 1;
@ -119,8 +125,8 @@ namespace Map
private void UpdateTileAtTilemapPosition(int tileX, int tileY)
{
// 计算对应的数据坐标(考虑偏移)
var dataX = tileX - dataOffset.x;
var dataY = tileY - dataOffset.y;
var dataX = tileX; // - dataOffset.x 已删除
var dataY = tileY; // - dataOffset.y 已删除
// 获取四个角的数据坐标
var topLeftX = dataX;
@ -181,4 +187,5 @@ namespace Map
return null;
}
}
}

View File

@ -6,24 +6,6 @@ namespace Map
{
public class MapGenerator:MonoBehaviour
{
public DoubleMap baseLevel;
public Tilemap buildLevel;
public Tilemap plantLevel;
public bool CanPassThrough(int x, int y)
{
return GetTilePassCost(x, y) < 1;
}
public float GetTilePassCost(int x, int y)
{
return 0;
}
public float GetTileBulletCover(int x, int y)
{
return 0;
}
}
}