Unity虚拟摇杆的实现方法

本文实例为大家分享了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;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Unity3D基于UGUI实现虚拟摇杆

    虚拟摇杆在移动游戏开发中,是很常见的需求,今天我们在Unity中,使用UGUI来实现一个简单的虚拟摇杆功能. 1.打开Unity,新创建一个UIJoystick.cs脚本,代码如下: using UnityEngine; using UnityEngine.EventSystems; public class UIJoystick : MonoBehaviour, IDragHandler, IEndDragHandler { /// <summary> /// 被用户拖动的操纵杆 /// &

  • Unity3D使用UGUI开发原生虚拟摇杆

    在Unity3d中开发虚拟摇杆方式有比较多,可以使用EasyTouch.FairyGUI等插件来开发.本文给大家介绍使用Unity3d的原生UGUI来开发出自己的虚拟摇杆,这样可以减少游戏资源包的大小. 先展示下效果图: 现在开发我们的开发 创建一个Image1,并且在Image1创建一个子对象Image2 在Image1中挂载一个自定义脚本,这里我命名为Joystick 脚本代码如下 using System.Collections; using System.Collections.Gene

  • unity实现手游虚拟摇杆

    本文实例为大家分享了unity实现手游虚拟摇杆的具体代码,供大家参考,具体内容如下 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// <summary> /// 绑定到摇杆上的摇杆类,参考半径50 /// </summary> public class Rocker : MonoBehaviour { Vector2 m_o

  • Unity实现虚拟摇杆效果

    本文实例为大家分享了Unity实现虚拟摇杆效果的具体代码,供大家参考,具体内容如下 首先添加两者图片 从左到右分别是Back和Front 将Front放到Back中心 在Front身上添加脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems;//导入命名空间 public class JoyStick : MonoBehavi

  • unity实现虚拟摇杆控制Virtual Joystick

    本文实例为大家分享了unity实现虚拟摇杆控的具体代码,供大家参考,具体内容如下 using UnityEngine; using UnityEngine.UI; public class TouchJoystick : MonoBehaviour { public GameObject go;//需要通过虚拟摇杆控制的目标物体 public float moveSpeed = 3;//移动速度 public Image touchPoint;//摇杆轴对象 private Vector3 Or

  • Unity实现虚拟摇杆

    本文实例为大家分享了Unity实现虚拟摇杆的具体代码,供大家参考,具体内容如下 面板上设置一些属性,比如摇杆拖拽的距离,是否始终可视,是否限制虚拟摇杆位置(我是把虚拟摇杆限制在了屏幕的左下区域). 使用GetDirAndLength()方法去获得移动的方向和长度即可 using UnityEngine; /// <summary> /// 虚拟摇杆管理器 /// </summary> public class VirtualJoystickManager : MonoBehavio

  • Unity实现简单的虚拟摇杆

    本文实例为大家分享了Unity实现简单虚拟摇杆的具体代码,供大家参考,具体内容如下 需求:点击创建一个虚拟摇杆底盘,鼠标拖拽时候上方摇杆会跟随鼠标方向移动,并且不会超出摇杆盘范围 *摇杆功能另外实现 UI显示 using System.Collections; using System.Collections.Generic; using UnityEngine; public class RockingIcon : MonoBehaviour { public Transform touchP

  • Unity实现简单虚拟摇杆

    本文实例为大家分享了Unity虚拟摇杆的简单实现代码,供大家参考,具体内容如下 简单的Unity虚拟摇杆实现,有详细注释. Game界面 Inspector界面 摇杆脚本 public class YaoGanCtrl : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { public RectTransform diPan; public RectTransform anNiu; public Vector2 d

  • Unity虚拟摇杆的实现方法

    本文实例为大家分享了Unity实现虚拟摇杆的具体代码,供大家参考,具体内容如下 设置摇杆的背景图片的锚点如下: 设置摇杆的锚点为背景图片的中心点. 并给摇杆绑定脚本如下: using UnityEngine; using UnityEngine.EventSystems; using System.Collections; using System; public class JoyStickController : MonoBehaviour,IDragHandler,IEndDragHand

  • Unity编辑器下重启的方法

    Unity编辑器下重启的方法 我们项目AssetBundle打包走的是全自动化流程,打包之前要进行各种资源检测,如果检测顺利通过,则进入打包,否则提示错误资源名称及路径,打包中断!有时候即使资源检测通过也会打包崩溃,初步断定是Unity的内存爆了,因为Unity在编辑器下打开工程中的资源不会释放掉,所以内存一直在占用,打包时要进行一系列资源依赖分析,我们也知道,如果资源量非常大时候,Unity要保存资源依赖的堆栈,所以会有内存崩掉的风险,所以我就想着,打包之前重启下Unity,让Unity释放掉

随机推荐