您的位置:首页 > 产品设计 > UI/UE

使用UGUI制作虚拟摇杆功能

2017-08-25 09:17 260 查看
之前实习的时候,用到了虚拟摇杆,但是需要导入别人的包,有时甚至还有有一些错误,所以自己决定用自带的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;
}
}


代码非常简单,就不多解释了,将这个代码放到子物体身上,点击运行你就会发现,是不是和以前用的一样呢。是不是非常简单^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity UGUI 摇杆