From 4fde46699701b1a8b74b4dab516624852b24a86d Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 23 六月 2025 14:24:50 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts

---
 Main/Component/UI/Effect/EffectPlayer.cs |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/Main/Component/UI/Effect/EffectPlayer.cs b/Main/Component/UI/Effect/EffectPlayer.cs
new file mode 100644
index 0000000..4370458
--- /dev/null
+++ b/Main/Component/UI/Effect/EffectPlayer.cs
@@ -0,0 +1,77 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class EffectPlayer : MonoBehaviour
+{
+	public int effectId;
+
+	public bool autoDestroy = false;
+
+	public float destroyDelay = 0f;
+
+	public Canvas canvas = null;
+
+	public GameObject effectTarget = null;
+
+	protected void Start()
+	{
+		if (EffectMgr.Instance.IsNotShowBySetting(effectId))
+		{
+			return;
+		}
+
+		if (null != effectTarget)
+		{
+			DestroyImmediate(effectTarget);
+			effectTarget = null;
+		}
+
+        EffectConfig effectCfg = EffectConfig.Get(effectId);
+
+        if (null == effectCfg)
+        {
+            return;
+        }
+
+        //	YYL TODO
+        //	鍦ㄨ繖閲岃�冭檻鐢ㄦ睜鐨勮瘽鍙兘璧伴厤缃ソ涓�鐐� 鍘熸湰鐨勬槸鏃犺濡備綍閮借蛋姹� 浣嗘槸瀹為檯涓婃湁浜涚壒鏁堝苟涓嶉渶瑕�
+
+        // 鍔犺浇鐗规晥璧勬簮
+        var effectPrefab = ResManager.Instance.LoadAsset<GameObject>("UIEffect/" + effectCfg.packageName, effectCfg.fxName);
+        if (effectPrefab == null)
+        {
+            Debug.LogError($"鍔犺浇UI鐗规晥澶辫触: {effectCfg.packageName}");
+            return;
+        }
+        
+        // 瀹炰緥鍖栫壒鏁�
+        effectTarget = Instantiate(effectPrefab, transform);
+        effectTarget.name = $"Effect_{effectCfg.packageName}";
+        
+        if (null == canvas)
+	        canvas = GetComponentInParent<Canvas>();
+
+	    if (null == canvas)
+	    {
+	    	Debug.LogError("can not find canvas for UIEffect " + effectId);
+	    	return;
+	    }
+
+        // 娣诲姞鐗规晥绌块�忛樆鎸″櫒
+        EffectPenetrationBlocker blocker = effectTarget.AddComponent<EffectPenetrationBlocker>();
+        blocker.parentCanvas = canvas;
+
+        //  寤惰繜涓�甯ф墠鐢熸晥
+        this.DelayFrame(blocker.UpdateSortingOrder);
+
+        // blocker.UpdateSortingOrder();
+        
+        // 鑷姩閿�姣�
+        if (autoDestroy)
+        {
+            Destroy(effectTarget, destroyDelay);
+        }
+	}
+
+}

--
Gitblit v1.8.0