-- effectObj 特效object
-- rectTransform 需要进行裁切的2D尺寸rect
-- 粒子特效需要使用 拥有裁切功能的 Shader 例:(Unlit/Particles-Additive1, Effect/MaskAdditiveClip2D)
function _M.CommonParticlesClip(effectObj, rectTransform)
local vector3s = CS.System.Array.CreateInstance(typeof(CS.UnityEngine.Vector3), 4)
rectTransform:GetWorldCorners(vector3s)
local renderers = effectObj.CachedObj:GetComponentsInChildren(typeof(CS.UnityEngine.Renderer))
for i = 0, renderers.Length - 1 do
renderers[i].material:SetVector("_ClipRect", Vector4(vector3s[0].x, vector3s[0].y, vector3s[2].x, vector3s[2].y))
renderers[i].material:SetFloat("_UNITY_UI_CLIP_RECT", 1)
end
end