200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > unity实现UI线条一端固定另一端跟随鼠标点击位置并实时拉长或缩短

unity实现UI线条一端固定另一端跟随鼠标点击位置并实时拉长或缩短

时间:2024-07-14 11:52:30

相关推荐

unity实现UI线条一端固定另一端跟随鼠标点击位置并实时拉长或缩短

unity实现UI线条一端固定另一端跟随鼠标点击位置并实时拉长或缩短

using UnityEngine;public class Dzcontroller : MonoBehaviour{bool canCreate;Vector2 verStart;//初始位置Vector2 verEnd; //结束为止[SerializeField]Transform obj; //控制对象(image),pivot为(0.5f,0)Camera cam;RectTransform canvas; // Start is called before the first frame updatevoid Start(){canCreate = false;cam = Camera.main;verStart = obj.GetComponent<RectTransform>().anchoredPosition;canvas = transform.GetComponent<RectTransform>();}// Update is called once per framevoid Update(){if (Input.GetMouseButtonDown(0)){canCreate = !canCreate;}if (canCreate){Vector2 screenPos = Camera.main.WorldToScreenPoint(Input.mousePosition);//世界坐标转屏幕坐标Vector2 localPos;RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas, screenPos, cam, out localPos);//屏幕坐标转UI坐标verEnd = localPos;Change(obj, verStart, verEnd);}}void Change(Transform trans, Vector2 start, Vector2 end){float distance = Vector2.Distance(start, end); //两点距离trans.GetComponent<RectTransform>().sizeDelta = new Vector2(5, distance);//设置高度trans.rotation = Quaternion.LookRotation(Vector3.forward, end - start); //跟随鼠标点击位置}}

运行结果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。