(client) feat:实现掉落物,UI显示,维度

This commit is contained in:
m0_75251201
2025-08-27 13:56:22 +08:00
parent f04c89046b
commit 0c99e2beee
46 changed files with 6150 additions and 1809 deletions

View File

@ -16,7 +16,8 @@ namespace Map
private string _dimensionId;
[SerializeField] public MapGenerator mapGenerator;
public Vector3 cameraPosition;
/// <summary>
/// 获取此维度的唯一标识符。
/// </summary>
@ -73,6 +74,12 @@ namespace Map
}
private void Start()
{
var size = mapGenerator.baseMap.GetSize();
cameraPosition = new Vector3(size.x / 2f, size.y / 2f, -10)+transform.position;
}
private void OnDestroy()
{
// 当 Dimension 对象被销毁时(例如,场景卸载),从 Program 和 EntityManage 注销

View File

@ -10,32 +10,10 @@ namespace Map
{
public class DoubleMap : MonoBehaviour
{
private List<List<int>> mapData = new();
public List<List<int>> mapData = new();
public Tilemap textureLevel;
// 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++)
{
for (var j = 0; j < size; j++)
{
var dx = i - size / 2;
var dy = j - size / 2;
mapData[i][j] = (int)(Math.Sqrt(dx * dx + dy * dy) / 5) & 1;
}
}
RefreshAllTiles();
CameraControl.CameraControl.Instance.SetPosition(new Vector3(size * 0.5f, size * 0.5f, -10));
}
// 初始化地图数据大小
public void InitializeData(int width, int height, int defaultValue = 0)
@ -186,6 +164,16 @@ namespace Map
Debug.LogError($"未找到对应瓦片: {key}");
return null;
}
public Vector2Int GetSize()
{
if (!mapData.Any() || mapData[0].Count == 0)
{
return new Vector2Int(0, 0);
}
return new Vector2Int(mapData.Count, mapData[0].Count);
}
}
}

View File

@ -6,6 +6,29 @@ namespace Map
{
public class MapGenerator:MonoBehaviour
{
public DoubleMap baseMap;
private void Awake()
{
Managers.DefineManager.Instance.Init();
Managers.PackagesImageManager.Instance.Init();
Managers.TileManager.Instance.Init();
var size = 100;
baseMap.InitializeData(size, size);
for (var i = 0; i < size; i++)
{
for (var j = 0; j < size; j++)
{
var dx = i - size / 2;
var dy = j - size / 2;
baseMap.mapData[i][j] = (int)(Math.Sqrt(dx * dx + dy * dy) / 5) & 1;
}
}
baseMap.RefreshAllTiles();
CameraControl.CameraControl.Instance.SetPosition(new Vector3(size * 0.5f, size * 0.5f, -10));
}
}
}

View File

@ -1,10 +1,22 @@
using Base;
using UnityEngine;
using UnityEngine.UI;
namespace Map
{
public class MiniMap : MonoBehaviour
public class MiniMap : MonoBehaviour,ITickUI
{
public RawImage texture;
private bool _show = true;
public void TickUI()
{
if (_show != Setting.Instance.CurrentSettings.showMiniMap)
{
_show = Setting.Instance.CurrentSettings.showMiniMap;
texture.gameObject.SetActive(_show);
}
}
}
}