Unity 3D物体飞到UI上的效果

效果如下

 

 

 代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 脚本挂到物体上
/// </summary>
public class FeiDao_UI : MonoBehaviour
{
    public RectTransform target;  //ui的transform  
    public bool asds = false;
    private Vector3 vectortar;
    private Vector3 vectortar1;
    private float float_shrink = 1;
    // Start is called before the first frame update
    void Start()
    {
        //Canvas 默认设置 用下面的
        vectortar = (target.position);
        //Canvas设置成Screen Space-Camera  可以用下面的
        //vectortar = Camera.main.WorldToScreenPoint(target.position);
    }
    private void OnMouseDown()
    {     
        asds = true;
        StartCoroutine("Ieniter");
    }
    IEnumerator Ieniter()
    {
        while (asds)
        {
           
            vectortar1 = Camera.main.WorldToScreenPoint(this.transform.position);
            Debug.Log(Vector3.Distance(vectortar, vectortar1));
            if (Vector3.Distance(vectortar, vectortar1) > 60f)
            {
                float_shrink -= Time.deltaTime;
                vectortar1 = Vector3.MoveTowards (vectortar1, vectortar, 5 );               
                this.transform.position = Camera.main.ScreenToWorldPoint(vectortar1);
                this.transform.localScale = new Vector3(float_shrink, float_shrink, float_shrink);
                if (float_shrink<=0)
                {
                    this.transform.localScale = Vector3.zero;
                    //Destroy(gameObject);
                    asds = false;
                  
                }
            }
            else
            {
                this.transform.localScale = Vector3.zero;
                asds = false;
                StopCoroutine("Ieniter");
                Destroy(gameObject);
            }
            yield return null;
        }

    }

}

 

简单记录一下,不喜勿喷,谢谢

 

posted @ 2020-12-30 14:48  剑起苍穹  阅读(1238)  评论(0编辑  收藏  举报
/*鼠标点击特效*/