核心提示:之前实习的时候,用到了虚拟摇杆,但是需要导入别人的包,有时甚至还有有一些错误,所以自己决定用自带的ugui制作一个虚拟摇杆,不仅方便,还减少了包的大小;如图所示,制作一个背景的图片image,在建一个...
之前实习的时候,用到了虚拟摇杆,但是需要导入别人的包,有时甚至还有有一些错误,所以自己决定用自带的ugui制作一个虚拟摇杆,不仅方便,还减少了包的大小;
如图所示,制作一个背景的图片image,在建一个子物体image,放置好自己需要的摇杆图片(我用unity自带的图片),接下来就要写代码了,代码如下:
using UnityEngine; using System.Collections; using UnityEngine.EventSystems; public class test : MonoBehaviour,IDragHandler,IEndDragHandler,IBeginDragHandler { Vector3 startPos;//开始位置 Vector3 dir;//方向 float radius = 80;//需要移动的半径,这个要根据自己需要移动的距离改变哦,我的是80 public void OnDrag(PointerEventData eventData) { dir = (Input.mousePosition - startPos).normalized; transform.position = Input.mousePosition; float dis = Vector3.Distance(transform.position,startPos); if (dis > radius) transform.position = startPos + dir * radius; } public void OnEndDrag(PointerEventData eventData) { transform.localPosition = Vector3.zero; } public void OnBeginDrag(PointerEventData eventData) { startPos = transform.position; } }
代码非常简单,就不多解释了,将这个代码放到子物体身上,点击运行你就会发现,是不是和以前用的一样呢。是不是非常简单^_^