您现在的位置:首页 >> 前端 >> 内容

使用UGUI制作虚拟摇杆功能

时间:2017/8/26 9:32:00 点击:

  核心提示:之前实习的时候,用到了虚拟摇杆,但是需要导入别人的包,有时甚至还有有一些错误,所以自己决定用自带的ugui制作一个虚拟摇杆,不仅方便,还减少了包的大小;如图所示,制作一个背景的图片image,在建一个...

之前实习的时候,用到了虚拟摇杆,但是需要导入别人的包,有时甚至还有有一些错误,所以自己决定用自带的ugui制作一个虚拟摇杆,不仅方便,还减少了包的大小;

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

代码非常简单,就不多解释了,将这个代码放到子物体身上,点击运行你就会发现,是不是和以前用的一样呢。是不是非常简单^_^

Tags:使用 用U UG GU 
作者:网络 来源:yiwei151的博