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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值