欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

Unity虚拟摇杆的实现方法

时间:2021-03-24 10:29:30|栏目:.NET代码|点击:

本文实例为大家分享了Unity实现虚拟摇杆的具体代码,供大家参考,具体内容如下

设置摇杆的背景图片的锚点如下:

设置摇杆的锚点为背景图片的中心点。

并给摇杆绑定脚本如下:

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

public class JoyStickController : MonoBehaviour,IDragHandler,IEndDragHandler {
  //最大的拖动距离
  public float maxDragDistance = 50f;
  //虚拟摇杆的方向
  public Vector3 direction;
  //玩家
  public GameObject player;
  // Use this for initialization
  void Start()
  {

  }

  // Update is called once per frame
  void Update()
  {
    //屏幕上的y轴分量 当作游戏世界里的z分量
    //设置玩家的朝向
    player.transform.forward = new Vector3(direction.x,0,direction.y);
    int flag = Vector3.Distance(Vector3.zero, this.transform.localPosition) <1f ? 0 : 1;
    player.transform.Translate(Vector3.forward * flag * Time.deltaTime,Space.Self);

  }
  //拖拽中的时候
  public void OnDrag(PointerEventData eventData)
  {
    this.transform.position = Input.mousePosition;
    if (Vector3.Distance(Vector3.zero,this.transform.localPosition) > maxDragDistance)
    {
      direction = this.transform.position - Vector3.zero;
      this.transform.localPosition = direction.normalized * maxDragDistance;
    }
  }
  //拖拽结束的时候
  public void OnEndDrag(PointerEventData eventData)
  {
    this.transform.localPosition = Vector3.zero;
  }
}

上一篇:C#获取变更过的DataTable记录的实现方法

栏    目:.NET代码

下一篇:不能忽略c#中的using和as操作符的用处

本文标题:Unity虚拟摇杆的实现方法

本文地址:http://www.codeinn.net/misctech/86974.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有