Unity 简易的摇杆移动转向

         大家都知道关于电脑的移动方式可以直接获取键盘的按键,但是手机大多数是没有键盘的都在屏幕上操作的,所以摇杆渐渐的出现在来各种游戏的比如王者荣耀、原神等

首先场景创建如图所示

当然根据个人需求命名、和精灵等...看个人和需求自行更改

 接下来是命名空间

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

细节代码部分

//                                      开始拖拽           拖拽中        结束拖拽  
public class PlayerMove : MonoBehaviour,IBeginDragHandler,IDragHandler,IEndDragHandler
{
    //记录一开始的坐标和移动位置的坐标
    Vector2 staV2,posV2;
    //判断移动的范围
    private int lenl = 70;
    //是否在移动
    bool boolMove;
    //移动的玩家
    public GameObject player;
    //一开始找到玩家
    private void Awake()
    {
        player = GameObject.Find("Player");
    }
    //开始拖拽判断在移动 记录开始的位置
    public void OnBeginDrag(PointerEventData eventData)
    {
        boolMove = true;
        staV2= transform.position;
    }
    //拖拽中 先计算移动的距离 现在的位置不能超过最大的距离
    public void OnDrag(PointerEventData eventData)
    {
        posV2 = eventData.position - staV2;
        transform.position = Vector2.ClampMagnitude(posV2, lenl) + staV2;
    }
    //结束拖拽 关闭和回归原位
    public void OnEndDrag(PointerEventData eventData)
    {
        boolMove = false;
        transform.localPosition = Vector3.zero;
    }
    void Update()
    {
        if (boolMove)
        {
            //朝向
            player.transform.LookAt(new Vector3(posV2.x, 0, posV2.y) + player.transform.position);
            //移动
            player.transform.Translate(new Vector3(0, 0, Time.deltaTime * posV2.magnitude / 10));
        }
    }
}

最后添加到移动的小图片就好了  

(有问题及时评论、使用代码和内容记得点赞+关注 、转载请标记这里)

  )

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值