效果如下
代码如下
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; } } }
简单记录一下,不喜勿喷,谢谢