UGUI 背包物体拖动效果(个人笔记)

using UnityEngine.UI;
using UnityEngine.EventSystems;

public class scroll : MonoBehaviour, IBeginDragHandler, IEndDragHandler
{
    private ScrollRect a;
    private float[] window = { 0, 0.33f, 0.67f, 1.01f, 1.32f };//最终的4个页面的,最终x坐标
    private float solider = 0;//将本脚本用的数据都写成private模式(这里用solider存储具体的页码,用于lerp计算)
 void Awake()
    {
       a = this.gameObject.GetComponent<ScrollRect>();
    }


    public void OnBeginDrag(PointerEventData eventData)//当拖曳开始
    {

    }

    public void OnEndDrag(PointerEventData eventData)//当拖曳结束
    {
        float thistime = a.horizontalNormalizedPosition;//水平方向上的标准化坐标即x坐标,实时x坐标
        int ye = 0;//页码
        float maintime = Mathf.Abs(thistime - window[ye]);//左边长
        for (int i = 0; i < window.Length; ++i)
        {

            float timetemp = Mathf.Abs(thistime - window[i]);//右边长
            if (maintime > timetemp)//左边>右边(如果左边不再大于右边
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UGUI(Unity图形用户界面) 是Unity引擎中用于创建用户界面的工具。摇杆物体移动是指使用UGUI中的摇杆(Joytstick)组件来控制游戏中的物体移动。下面是一种实现摇杆物体移动的方法: 首先,创建一个新的Canvas,并在其上创建一个RawImage对象作为摇杆的图像显示区域。然后,在这个RawImage对象上添加一个Image组件,并将摇杆的图片资源赋给它。 接下来,需要在摇杆图像上添加一个摇杆触摸的事件监听脚本。这个脚本可以通过实现Unity提供的接口来监听用户的触摸操作,并进行相应的处理。可以通过监听摇杆图像上的Touch事件来实现。 在监听脚本中,可以通过判断触摸事件类型,来处理用户的触摸操作。当用户按下手指时,获取到按下位置和摇杆图像的原始位置,并将其保存下来。然后,根据用户触摸的位置,计算出摇杆的偏移量(相对于原始位置),并将其映射到游戏中物体的移动范围上。 在每一帧更新中,可以根据摇杆的偏移量来计算出物体应该移动的速度和方向。可以使用Unity提供的刚体组件来控制物体的移动。将计算得到的速度和方向赋给物体的刚体组件上的力或速度属性,即可实现物体的移动。 需要注意的是,对于3D场景中的物体移动,可以使用Rigidbody组件来实现物体受力和冲量等物理效果。对于2D场景中的物体移动,可以使用Rigidbody2D组件。 通过以上步骤,就可以在Unity引擎中实现使用UGUI的摇杆来控制游戏中物体的移动。具体操作可以根据实际需求进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值