Unity3D 屏幕点击特效

前言

屏幕点击特效目前用到两种,场景中特效和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<RectTransform>().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);
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我寄人间雪满头丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值