您当前的位置: 首页 >  unity
  • 5浏览

    0关注

    193博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity3D 屏幕点击特效

我寄人间雪满头丶 发布时间:2020-07-07 12:13:31 ,浏览量:5

前言

屏幕点击特效目前用到两种,场景中特效和UI特效,其实就是坐标和层级之间的区别。无论特效用的帧动画、粒子特效亦或是贴图都可以使用,根据项目稍微调整下就好了。如果想优化的话可以写个对象池,这里就不赘述了。

1.UI点击特效

注意要将Layer设置为UI。 代码:

    Vector2 point;
    public Transform parent;
    public GameObject effect;
    public Canvas UICanvas; //你所使用的UICanvas
    [Range(0, 5.0f)]
    public float desTime = 1.0f;

    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
        	//将鼠标点击的屏幕坐标转换为UI坐标,最后一个输出参数为转换的点
            RectTransformUtility.ScreenPointToLocalPointInRectangle(UICanvas.transform as RectTransform,
Input.mousePosition, UICanvas.worldCamera, out point);

            GameObject go = Instantiate(effect, parent);
            go.GetComponent().anchoredPosition = point;
            Destroy(go, desTime);
        }
    }
2.场景中特效

目前做的是2D项目,特效用的是Sprite做的帧动画,要注意SortingLayer。

    public Transform parent;
    public GameObject effect;
    [Range(0, 5.0f)]
    public float desTime = 1.0f;
	
	//传入坐标调用
	public void InstantiateEffect(Vector3 pos)
    {
        GameObject go = Instantiate(effect, parent);
        go.transform.position = pos;
        Destroy(go, desTime);
    }
关注
打赏
1648518768
查看更多评论
立即登录/注册

微信扫码登录

0.1303s