From 5d3366f2e0f687995eb7ad2107c4379fe7acd4e8 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 04 七月 2025 11:54:05 +0800
Subject: [PATCH] 18 子 2D卡牌客户端搭建 / 2D卡牌客户端搭建 特效穿透问题修复
---
Main/System/UIBase/UIBase.cs | 3 ++-
Main/Utility/EffectPenetrationBlocker.cs | 49 ++++++++++++++-----------------------------------
2 files changed, 16 insertions(+), 36 deletions(-)
diff --git a/Main/System/UIBase/UIBase.cs b/Main/System/UIBase/UIBase.cs
index 5e7feb5..53420e0 100644
--- a/Main/System/UIBase/UIBase.cs
+++ b/Main/System/UIBase/UIBase.cs
@@ -184,9 +184,10 @@
// 璁剧疆Canvas灞炴��
canvas.overrideSorting = true;
-
canvas.worldCamera = CameraManager.uiCamera;
+ canvas.sortingLayerID = SortingLayer.NameToID("UI"); // 纭繚浣跨敤姝g‘鐨勬帓搴忓眰
+
// 鑾峰彇鎴栨坊鍔燙anvasGroup缁勪欢
canvasGroup = GetComponent<CanvasGroup>();
if (canvasGroup == null)
diff --git a/Main/Utility/EffectPenetrationBlocker.cs b/Main/Utility/EffectPenetrationBlocker.cs
index 42d6837..5636595 100644
--- a/Main/Utility/EffectPenetrationBlocker.cs
+++ b/Main/Utility/EffectPenetrationBlocker.cs
@@ -1,3 +1,4 @@
+using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
@@ -11,10 +12,7 @@
public bool autoAdjustSorting = true;
[Tooltip("鐗规晥娓叉煋鍣紝濡傛灉涓虹┖鍒欒嚜鍔ㄨ幏鍙�")]
- public Renderer[] effectRenderers;
-
- [Tooltip("鐗规晥绮掑瓙绯荤粺锛屽鏋滀负绌哄垯鑷姩鑾峰彇")]
- public ParticleSystem[] particleSystems;
+ public List<Renderer> effectRenderers = new List<Renderer>();
[Tooltip("鑷畾涔夋帓搴忛『搴忥紝浠呭湪涓嶈嚜鍔ㄨ皟鏁存椂鏈夋晥")]
public int customSortingOrder = 0;
@@ -26,30 +24,28 @@
public Canvas parentCanvas;
[Tooltip("鐗规晥鍦–anvas涓殑鎺掑簭鍋忕Щ閲�")]
- public int _sortingOrderOffset = 0;
+ public int sortingOrderOffset = 1;
public int canvasSortingOrder = 0;
+
+ public int renderQueue = 3000;//榛樿鍊�
private void Awake()
{
+ transform.GetComponentsInChildren(true, effectRenderers);
+
// 濡傛灉娌℃湁鎸囧畾娓叉煋鍣紝鍒欒嚜鍔ㄨ幏鍙�
- if (effectRenderers == null || effectRenderers.Length == 0)
+ if (effectRenderers == null || effectRenderers.Count == 0)
{
- effectRenderers = GetComponentsInChildren<Renderer>(true);
+ transform.GetComponentsInChildren<Renderer>(true, effectRenderers);
}
-
- // 濡傛灉娌℃湁鎸囧畾绮掑瓙绯荤粺锛屽垯鑷姩鑾峰彇
- if (particleSystems == null || particleSystems.Length == 0)
- {
- particleSystems = GetComponentsInChildren<ParticleSystem>(true);
- }
-
+
// 鏌ユ壘鐖剁骇Canvas
if (parentCanvas == null)
{
parentCanvas = GetComponentInParent<Canvas>();
}
-
+
if (autoAdjustSorting)
{
UpdateSortingOrder();
@@ -86,9 +82,9 @@
// 濡傛灉娌℃湁鎵惧埌鐖剁骇Canvas锛屽垯浣跨敤榛樿鍊�
canvasSortingOrder = 0;
}
-
+
// 灏嗙壒鏁堢殑鎺掑簭椤哄簭璁剧疆涓篊anvas鎺掑簭椤哄簭鍔犱笂鍋忕Щ閲�
- ApplySortingSettings(canvasSortingOrder + _sortingOrderOffset, customSortingLayer);
+ ApplySortingSettings(canvasSortingOrder + sortingOrderOffset, customSortingLayer);
}
/// <summary>
@@ -104,28 +100,11 @@
if (renderer != null)
{
renderer.sortingOrder = sortingOrder;
+ renderer.material.renderQueue = renderQueue; // 璁剧疆娓叉煋闃熷垪
// renderer.material.renderQueue = overlayRQ;
if (!string.IsNullOrEmpty(sortingLayer))
{
renderer.sortingLayerName = sortingLayer;
- }
- }
- }
-
- // 搴旂敤鍒扮矑瀛愮郴缁�
- foreach (ParticleSystem ps in particleSystems)
- {
- if (ps != null)
- {
- ParticleSystemRenderer psRenderer = ps.GetComponent<ParticleSystemRenderer>();
- if (psRenderer != null)
- {
- psRenderer.sortingOrder = sortingOrder;
- // psRenderer.material.renderQueue = overlayRQ;
- if (!string.IsNullOrEmpty(sortingLayer))
- {
- psRenderer.sortingLayerName = sortingLayer;
- }
}
}
}
--
Gitblit v1.8.0