[Unity] 游戏摇杆的简单实现

查看:650 |回复:1 | 2019-3-17 15:17:15

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 张金锋 于 2019-3-17 15:19 编辑

  • 1.首先在场景中建立两个Image,这两个image成父子关系。如图
  • 428405c8df2564ecb1.png
  • 2.给两个Image赋值图片,父物体是底,子物体是摇杆。
  • 630535c8df2aa684d8.png

3.重写ScrollRect类如下,
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class MyScrollRect : ScrollRect
{
    //public float myRadius=50f;
    public float myRadius ;
    public Vector2 originalPosition;
    //重写start方法
    protected override void Start()
    {
        base.Start();
        //获取半径
        myRadius = ((RectTransform)transform).sizeDelta.x*0.5f;
        //监听摇杆移动
        this.onValueChanged.AddListener((conten) => Debug.Log(content.anchoredPosition));
    }
   //重写Ondrag方法
    public override void OnDrag(PointerEventData eventData)
    {
        base.OnDrag(eventData);
        //获取到当前位置
        Vector2 contentPostion = this.content.anchoredPosition;
        //设置移动的最大值不能超过半径
        SetContentAnchoredPosition(contentPostion.magnitude > myRadius ? contentPostion.normalized * myRadius : contentPostion);
    }
}


  • 4.并将重写好的脚本拖给父物体,然后将子物体拖给Content
  • 5.然后运行游戏,就可以看到效果了


这个有问题,发出来的格式和我编辑时的格式不一样

147495c8df389b00c7.png
670205c8df41ff1fd2.png
882955c8df4266bb13.png

评分

参与人数 1活跃度 +5 展开 理由
元素大使瓜克丝 + 5

查看全部评分

2019-3-17 15:17:15  
 赞 赞 0

使用道具 登录

1个回答,把该问题分享到群,邀请大神一起回答。
2#
谢谢分享
回复 收起回复
2019-3-17 17:06:41   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

手机游戏引擎手游引擎Unity3D技术
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表