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;
        }

    }

}

 

簡單記錄一下,不喜勿噴,謝謝

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM