更新结算界面
This commit is contained in:
@@ -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
|
||||
);
|
||||
}
|
||||
|
||||
// ===== 光源注册/注销 =====
|
||||
|
||||
Reference in New Issue
Block a user