using UnityEngine;
using UnityEngine.UI;
public class UIParticleScaler : MonoBehaviour
{
    private void Start()
    {
        //var scale = Mathf.Min(1f, UIManager.Instance().resolutionRatioScale);
        //MatchCurrentSize(scale);
        NeedCull();
    }

    private void NeedCull()
    {
        Mask[] masks = gameObject.GetComponentsInParent<Mask>();
        if (masks.Length <= 0)
            return;
        Mask mask = masks[0];
        RectTransform rectTransform = mask.transform as RectTransform;
        if (rectTransform == null)
            return;
        Vector3[] corners = new Vector3[4];
        rectTransform.GetWorldCorners(corners);
        float minX = corners[0].x;
        float minY = corners[0].y;
        float maxX = corners[2].x;
        float maxY = corners[2].y;
        Renderer[] particlesSystems = gameObject.GetComponentsInChildren<Renderer>();
        for (int i = 0; i < particlesSystems.Length; i++)
        {
            particlesSystems[i].sharedMaterial.shader = Shader.Find("Zhanyou/Particles/AdditiveAlphaWriteMask");
            particlesSystems[i].sharedMaterial.SetFloat("_MinX", minX);
            particlesSystems[i].sharedMaterial.SetFloat("_MinY", minY);
            particlesSystems[i].sharedMaterial.SetFloat("_MaxX", maxX);
            particlesSystems[i].sharedMaterial.SetFloat("_MaxY", maxY);
        }
    }
}