(client) feat:实现掉落物,UI显示,维度
This commit is contained in:
@ -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 注销
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user