UGUI粒子裁剪

作者: 好怕怕 | 来源:发表于2019-02-28 13:30 被阅读3次
image.png
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class MaskPlus : Mask
{
    Camera cam;
    protected override void Start()
    {
        base.Start();
        ResetShaderMaskClip();
    }

    public void ResetShaderMaskClip()
    {
        Vector3[] points = new Vector3[4];
        (transform as RectTransform).GetWorldCorners(points);
        float x;
        float y;
        float x1;
        float y1;

        Vector3 scPos = cam.WorldToScreenPoint(points[0]);
        x = scPos.x;
        y = scPos.y;
        x1 = scPos.x;
        y1 = scPos.y;

        for (int i = 0; i < points.Length; i++)
        {
            scPos = cam.WorldToScreenPoint(points[i]);
            //取最小xy
            x = scPos.x < x ? scPos.x : x;
            y = scPos.y < y ? scPos.y : y;

            //取最大
            x1 = scPos.x > x1 ? scPos.x : x1;
            y1 = scPos.y > y1 ? scPos.y : y1;


        }


        Vector4 normalize = new Vector4(x / Screen.width, y / (float)Screen.height, x1 / (float)Screen.width, y1 / (float)Screen.height);

        Shader.SetGlobalVector("_MaskClip", normalize);

    }




}

相关文章

  • UGUI粒子裁剪

  • UGUI粒子遮罩

    一.参考文章: UnityShader实例09:Stencil Buffer&Stencil Test - lup...

  • UGUI粒子特效层级

    昨天,在做一个功能,结算功能,其中特效用到了粒子+Animation。 很尴尬的是特效被其他界面挡住了。 当然此时...

  • Unity UI资料收集

    UGUI UGUI优化:批次合并源码分析及工具UGUI内核大探究(零)UGUI源码深度剖析 基于ugui组件封装,...

  • NGUI粒子系统滚动区域裁剪

    看了UWA视频,实现的是将粒子的shader部分做裁剪处理,修改其renderQueue夹杂在不同item之间,附...

  • UGUI及NGUI实现粒子夹层渲染

    我们在开发中,经常会遇见粒子,Mesh,Spine等在渲染的时候会被UI层给挡住从而无法达到理想的体验效果。现在我...

  • UGUI 事件系统EventSystem流程图

    UGUI源码解析--EventSystem系统UGUI使用教程(一)事件系统EventSystem 整个UGUI的...

  • Unity之UGUI

    初识UGUI 如何实现UGUI图片拖动

  • UGUI之UI粒子特效自适应缩放

    我们UI自适应采用的是Canvas Scaler 设置 Expand模式。 那么UI可以很好的自适应屏幕,可是粒子...

  • NGUI与UGUI的区别

    总结: 1、NGUI与UGUI的区别 2、uGUI的Canvas 有世界坐标和屏幕坐标 3、uGUI的Image可...

网友评论

    本文标题:UGUI粒子裁剪

    本文链接:https://www.haomeiwen.com/subject/staksqtx.html