更新结算界面

This commit is contained in:
2026-07-04 14:45:52 +08:00
parent 0b6dc2653f
commit 08dec79a6e
28 changed files with 3022 additions and 5289 deletions
+22 -10
View File
@@ -38,8 +38,8 @@ namespace IndianOceanAssets.Engine2_5D
[SerializeField, Range(0.01f, 1f)] private float lightSoftness = 0.35f;
[Header("遮罩平面跟随设置")]
[Tooltip("如果勾选,遮罩平面会跟随摄像机移动(适合大地图)")]
[SerializeField] private bool followCamera = true;
[Tooltip("遮罩平面跟随目标(留空则自动查找 Player 标签)。\n跟随玩家而非摄像机,确保光照精度始终一致。")]
[SerializeField] private Transform followTarget;
[SerializeField] private Transform maskPlane;
[SerializeField] private Vector3 maskOffset = new Vector3(0f, 5f, 0f);
[SerializeField] private float planeSize = 50f;
@@ -69,6 +69,14 @@ namespace IndianOceanAssets.Engine2_5D
{
_mainCamera = Camera.main;
UpdateMaterialProperties();
// 自动查找玩家作为跟随目标
if (followTarget == null)
{
var player = GameObject.FindWithTag("Player");
if (player != null)
followTarget = player.transform;
}
// 确保遮罩平面在所有Sprite之后渲染
if (maskPlane != null)
@@ -76,14 +84,10 @@ namespace IndianOceanAssets.Engine2_5D
Renderer renderer = maskPlane.GetComponent<Renderer>();
if (renderer != null)
{
// 设置渲染队列为最后(Overlay之后)
renderer.sortingOrder = 9999;
// 如果使用MeshRenderer,设置material的渲染队列
if (renderer is MeshRenderer && darknessMaterial != null)
{
// 保持在Transparent之后
darknessMaterial.renderQueue = 3100; // Transparent+100
darknessMaterial.renderQueue = 3100;
}
}
}
@@ -130,9 +134,17 @@ namespace IndianOceanAssets.Engine2_5D
private void UpdateMaskPosition()
{
if (!followCamera || maskPlane == null || _mainCamera == null) return;
Vector3 camPos = _mainCamera.transform.position;
maskPlane.position = new Vector3(camPos.x + maskOffset.x, maskOffset.y, camPos.z + maskOffset.z);
if (maskPlane == null) return;
// 优先跟随玩家,回退到摄像机
Transform target = followTarget != null ? followTarget : _mainCamera?.transform;
if (target == null) return;
maskPlane.position = new Vector3(
target.position.x + maskOffset.x,
maskOffset.y,
target.position.z + maskOffset.z
);
}
// ===== 光源注册/注销 =====