第五十四章 Unity 移动平台输入(下)
本章节我们介绍一个模拟器插件。这种插件比较多,比如EasyTouch,Lean Touch,Joystick Pack等等。EasyTouch是一个使用非常广泛的插件,支持点击,拖拽,遥感等很多常用功能。不过遗憾的是,该插件已经下架了。

新的插件应该是“Easy Touch Controls”,作者都是Hedgehog Team。当然,我们还有其他渠道可以下载该插件,这里我们使用的是Easy Touch 5 Touchscreen Virtual Controls 5.0.17.unitypackage。我们在上面的工程基础上,将此资源包导入进来。


需要升级API,我们点击“I Made a Backup,Go Ahead!”按钮即可。

导入完毕后,会弹出一个窗口,我们关闭它即可。

在Project工程面板中,我们可以看到导入进来后的资源目录和文件。
接下来,我们在Hierarchy层次面板空白处,右击选择“EasyTouch Controls”->“Joystick”,然后将我们的Scene切换为“2D”模式,因为这个插件应该是基于UGUI写的。


我们就能看到一个类似“摇杆”的模拟器了。请注意,它在我们的层次面板中的名称为“New Joystick”的游戏对象哦。我们来查看它的检视面板。

该插件最重要的就是“ETC Joystick”这个脚本组件。
JoystickName:虚拟摇杆游戏物体的名字;
Activated:虚拟摇杆是否激活可用;
Visible:虚拟摇杆是否可见;
UseFixedUpdate:使用FixedUpdate 函数更新摇杆信息;
Unregister at disabling time:注销时禁用虚拟摇杆;
首先,我们查看它下面的“Position & Size”项目,我们通过该项目可以将这个摇杆放置到左下角,设置如下:

选择“Anchor”锚点为Bottom Left左下角,并设置间距为20像素。设置间距的原因是摇杆要有前后左右移动的空间,此时我们在看scene视图。

在“Sprites”中我们可以设置“摇杆”的背景图片。

接下来,就是我们的事件的配置,主要分为Move,Touch,Down,Press四种事件设置。

1.Move Events [移动事件]
OnMoveStart,OnMove,OnMoveSpeed,OnMoveEnd
在移动虚拟摇杆操纵钮的时候,在移动过程中逐步触发对应的事件。
2.Touch Events [触摸事件]
OnTouchStart,OnTouchUp
操纵钮的开始操作和操作结束,各执行一次事件。
3.Down Events [方向事件]
OnDownUp,OnDownRight,OnDownDown,OnDownLeft
当我们按下虚拟摇杆操纵钮移动到上下左右最终位置时,触发一次。
4.Press Events [按下事件]
OnPressUp,OnPressRight,OnPressDown,OnPressLeft
当我们按下虚拟摇杆操纵钮移动到上下左右最终位置时,则会一直触发。
我们就拿Move来举例。

根据事件名称, 我们大致了解这些事件的触发机制。我就以OnMove来举例。我们就来创建一个“MoveScript.cs”脚本文件,在里面创建OnMoveTest方法。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MoveScript : MonoBehaviour
{public void OnMoveTest(Vector2 v){Debug.Log("X=" + v.x);Debug.Log("Y=" + v.y);}
}
然后,我们将该脚本附加到“Main Camera”上面,然后再去配置OnMove事件。

这里,我们取消掉之前的“TouchScript.cs”脚本(上一个章节使用的脚本)

接下来,我们就可以直接运行工程(不用到手机上运行测试),然后拖动摇杆进行测试。

代码就不用解释了,X和Y代表两个方向,其数值为-1到1之间。如果是X轴的话,正数代表向右移动,负数代表向左移动;如果是Y轴的话,正数代表向上移动,负数代表向下。关于Easy Touch插件,我们就介绍到这里,更多的内容可以到Asset目录下EasyTouchBundle文件夹下来查看它的官方文档和案例。它分为EasyTouch和EasyTouchControls两部分,每一个部分都包含Documentation文档和Examples案例,大家自己可以看一看。
本课程涉及的内容已经共享到百度网盘:https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id
相关文章:
第五十四章 Unity 移动平台输入(下)
本章节我们介绍一个模拟器插件。这种插件比较多,比如EasyTouch,Lean Touch,Joystick Pack等等。EasyTouch是一个使用非常广泛的插件,支持点击,拖拽,遥感等很多常用功能。不过遗憾的是,该插件已经…...
KD305Y带吸收比极化指数兆欧表
一、概述 KD305Y绝缘电阻测试仪对众多的电力设备如:电缆、电机、发电机、变压器、互感器、高压开关、避雷器等要求做一系列的绝缘性能试验,首先是要做绝缘电阻测试。近年来随着电力事业的飞速发展,大容量设备的使用不断增加,用普通的兆欧表无…...
磁盘空间不足怎么办?释放磁盘空间的4种方法
虽然现在硬盘的空间越来越大,但是在这个数据爆炸的时代中,总是会觉得存储空间不够用,一不注意磁盘就满了,那么除了清空回收站、卸载某些程序外,还能怎么释放磁盘空间呢? 方案一:禁用休眠 休眠是…...
ChatGPT调教指北,技巧就是效率!
技巧就是效率 很多人都知道ChatGPT很火很强,几乎无所不能,但跨越了重重门槛之才有机会使用的时候却有些迷茫,一时间不知道如何使用它。如果你就是把他当作一个普通的智能助手来看待,那与小爱同学有什么区别?甚至还差劲…...
Android启动流程(五)——init进程对子进程的监控
init进程会读取rc文件,然后孵化很多其他系统服务进程,为防止子进程死亡后称为僵尸进程,init需要监测子进程是否死亡,如果死亡,则清除子进程资源,并重新拉起进程。 system/core/init/init.cpp InstallSigna…...
Python每日一练:蚂蚁家族(详解集合法)
文章目录 前言一、题目二、代码分析总结 前言 这题挺有意思,感觉评简单难度有点低了,如果正经用无向图来做,代码还是有点长的。首先得建立节点,估计除第一个和最后一个每个节点都是一条线连进,一条线连出的。就可以这…...
图神经网络:在KarateClub数据集上动手实现图神经网络
文章说明: 1)参考资料:PYG官方文档。超链。 2)博主水平不高,如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook。超链。提取码8888。 文章目录 文献阅读:代码实操: 文献阅读: 参考文…...
ArduPilot之开源代码调试技巧
ArduPilot之开源代码调试技巧 1. 源由2. ArduPilot Code Debugging Part13. ArduPilot Code Debugging Part24. 持续更新中。。。5. 参考资料 1. 源由 对于如何调试和验证ArduPilot,对于新手来说,有的时候反而是入门的一个门槛。 其实这个并不难&#…...
Linux网络基础-2
在之前的网络基础博客中,我们对网络的基本概念进行了一个简单的介绍,那么接下来的网络内容中,我们将对网络通信中的典型协议进行详细解释。 我们根据网络协议中的分层来对典型协议进行注意介绍,不过对于物理层的传输我们不做考究…...
软件测试报告模板
目录 2 1 概述... 3 1.1 测试目的... 3 1.2 测试策略... 3 1.3 测试方法... 3 1.4 计划验收标准... 3 1.5 测试用例... 4...
记一次azkaban调度异常处理
一、背景 预发布环境使用的数据库性能比较低,根据业务测试的需求,需要将数据库更换成 稳定高性能的数据库。更换业务数据库后azkaban定时任务失败 二、数据库服务信息 说明:该部分使用代号来代替,非真实信息 该数据库存储了azka…...
开发一个vue自定义指令的npm库-系列三:使用rollup打包npm库并发布
配置 rollup 使用rollup将 TypeScript 代码转换为 JavaScript,然后进行压缩和输出到目标文件。 项目根目录新建rollup.config.js import typescript from "rollup/plugin-typescript"; import terser from "rollup/plugin-terser"; import de…...
C嘎嘎的运算符重载基础教程以及遵守规则【文末赠书三本】
博主名字:阿玥的小东东 大家一起共进步! 目录 基础概念 优先级和结合性 不会改变用法 在全局范围内重载运算符 小结 本期送书:盼了一年的Core Java最新版卷Ⅱ,终于上市了 基础概念 运算符重载是通过函数重载实现的…...
【MCAL_UART】-1.2-图文详解RS232,RS485和MODBUS的关系
目录 1 UART,RS232和RS485通信拓扑 2 什么是RS232 2.1 RS232标准的演变 2.2 RS232标准讲了哪些 2.2.1 RS232通信的电平 2.2.2 RS232通信的带宽 2.2.3 RS232通信距离 2.2.4 RS232通信的机械接口 3 什么是RS485 3.1 RS485标准的演变 3.2 RS485标准讲了哪些…...
设计模式详解(二)——单例模式
单例模式简介 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,创建型模式是一类最常用的设计模式,在软件开发中应用非常广泛,它提供了一种创建对象的最佳方式。 单例模…...
为什么hooks不能在循环、条件或嵌套函数中调用
hooks不能在循环、条件或嵌套函数中调用 为什么? 带着疑问一起去看源码吧~ function App() {const [num, setNum] useState(0);const [count, setCount] useState(0);const handleClick () > {setNum(num > num 1)setCount(2)}return <p …...
互联网赚钱项目有哪些?目前最火的互联网项目
互联网是一个神奇的行业,大门不出二门不迈,一根网线一台电脑,甚至一台手机就可以赚钱。它给我们创造了前所未有的商业机会,让成千上万有梦想,敢想敢干的人通过互联网获得了巨大的成功!正因为如此࿰…...
队列、栈专题
队列、栈专题 LeetCode 20. 有效的括号解题思路代码实现 LeetCode 921. 使括号有效的最少添加解题思路代码实现 LeetCode 1541. 平衡括号字符串的最少插入次数解题思路代码实现 总结 不要纠结,干就完事了,熟练度很重要!!ÿ…...
TensorFlow vs PyTorch:哪一个更适合您的深度学习项目?
在深度学习领域中,TensorFlow 和 PyTorch 都是非常流行的框架。这两个框架都提供了用于开发神经网络模型的工具和库,但它们在设计和实现上有很大的差异。在本文中,我们将比较 TensorFlow 和 PyTorch,并讨论哪个框架更适合您的深度…...
大项目环境配置
目录 Linux的龙蜥8是什么? OpenGL是什么? 能讲讲qt是什么吗? 我可以把qt技术理解为c工程师的前端开发手段吗? 我其实一直有些不懂大家所说的这个开发框架啥的,这个该如何理解呢 那现在在我看来,框架意…...
5步搞定Anything V5:Stable Diffusion二次元图像生成服务快速搭建
5步搞定Anything V5:Stable Diffusion二次元图像生成服务快速搭建 1. 项目概述 Anything V5是基于Stable Diffusion技术的高质量二次元图像生成模型,特别适合动漫风格内容创作。本教程将带您快速搭建一个完整的图像生成服务,支持Web界面和A…...
别再纠结SSR还是SSG了!用create-nuxt-app创建项目时,这个选择直接影响你的部署成本
Nuxt.js渲染模式深度解析:如何用create-nuxt-app做出高性价比技术选型 在2023年的前端技术栈中,Nuxt.js依然保持着作为Vue生态中最成熟SSR解决方案的领先地位。但很多团队在项目启动时,往往会在create-nuxt-app的配置界面陷入纠结——特别是当…...
s2-proWeb工具深度体验:响应速度、试听流畅度与下载稳定性评测
s2-proWeb工具深度体验:响应速度、试听流畅度与下载稳定性评测 1. 产品概览 s2-pro是Fish Audio开源的专业级语音合成模型镜像,作为一款专注于文本转语音(TTS)的工具,它提供了两种核心功能模式: 基础语音合成:直接输…...
物联网毕业设计本科生开题指导
【单片机毕业设计项目分享系列】 🔥 这里是DD学长,单片机毕业设计及享100例系列的第一篇,目的是分享高质量的毕设作品给大家。 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的单片机项目缺少创新和亮点…...
通义千问2.5-7B惊艳案例展示:看它如何写出高质量营销文案
通义千问2.5-7B惊艳案例展示:看它如何写出高质量营销文案 1. 模型能力概览 通义千问2.5-7B-Instruct作为阿里最新发布的70亿参数指令微调模型,在文本生成领域展现出令人惊艳的能力。这款"中等体量、全能型、可商用"的模型具有以下核心优势&a…...
一站式数据健康解决方案:docta项目架构与核心组件深度剖析
一站式数据健康解决方案:docta项目架构与核心组件深度剖析 【免费下载链接】docta A Doctor for your data 项目地址: https://gitcode.com/gh_mirrors/do/docta docta作为一款强大的数据健康诊断工具,能够帮助用户轻松检测和修复数据集中的标签错…...
SimpleScreenRecorder多线程架构设计:如何避免死锁并提升录制性能
SimpleScreenRecorder多线程架构设计:如何避免死锁并提升录制性能 【免费下载链接】ssr SimpleScreenRecorder, a screen recorder for Linux 项目地址: https://gitcode.com/gh_mirrors/ss/ssr SimpleScreenRecorder作为一款Linux平台下的专业屏幕录制工具&…...
单片机与手机远距离通信技术方案全解析
1. 单片机与手机远距离通信的技术方案解析在物联网和智能硬件开发领域,单片机与手机的远程通信是一个基础但至关重要的技术需求。作为一名嵌入式开发工程师,我参与过多个需要远程通信的智能硬件项目,从智能家居设备到工业监测终端,…...
避坑指南:从聚宽迁移到QMT必须知道的5个细节(含Redis连接异常处理)
从聚宽迁移到QMT的实战避坑指南:Redis连接与xtquant重连机制详解 当量化团队需要从聚宽平台迁移到QMT时,往往会遇到一系列技术细节上的挑战。本文将聚焦五个最容易被忽视但至关重要的技术环节,特别是Redis连接池管理和xtquant重连机制这两个直…...
乐鑫联合 Bosch Sensortec(博世传感器)推出磁感应交互方案
在 AI 玩具与智能硬件的设计中,如何在有限的空间与成本条件下,实现稳定且顺畅的配件交互,正成为产品创新的重要课题。 乐鑫信息科技 (688018.SH) 携手 Bosch Sensortec(博世传感器)推出了一种更轻量、更可靠的解决思路…...
