一周一个Unity小游戏2D反弹球游戏 - 移动的弹板(触屏版)

前言

        上文中实现了用鼠标移动控制弹板的移动,本文将实现手指触屏时弹板跟随手指移动的功能,并通过使用Unity自带的Device Simulator Devices Package来验证和模拟触屏设备的使用场景。


安装Device Simulator Devices Package

        打开Unity Package Manager,位置在Window -> PackageManager。

        打开之后选择Unity Registry,在搜索栏中输入simu就会显示出一个名为Device Simulator Devices的Package,进行安装。

        安装完成后,可以在Window -> General -> Device Simulator中找到。

        打开Device Simulator,选择一个Xiaomi Mi Max设备,那么模拟触屏的测试环境就设置好了。

通过触控控制弹板移动

        打开SpringBoardController脚本,在脚本里声明两个InputActionReference关联之前创建的输入键映射。

[SerializeField] private InputActionReference _pointAction;
[SerializeField] private InputActionReference _positionAction;
[SerializeField] private bool _isSimulateAndroid;

private bool _isTouching;

private void OnEnable()
{
    _pointAction.action.started += HandleOnPointStarted;
    _pointAction.action.canceled += HandleOnPointCanceled;
}
        
private void OnDisable()
{
    _pointAction.action.started -= HandleOnPointStarted;
    _pointAction.action.canceled -= HandleOnPointCanceled;
}

private void HandleOnPointStarted(InputAction.CallbackContext _)
{
    _isTouching = true;
}
        
private void HandleOnPointCanceled(InputAction.CallbackContext _)
{
    _isTouching = false;
}

private void Update()
{
    if (_hasMainCamera)
    {
        if (_isSimulateAndroid || Application.platform == RuntimePlatform.Android)
        {
            if (_isTouching)
            {
                var touchPosition = _positionAction.action.ReadValue<Vector2>();
                UpdateSpringBoardPosition(touchPosition);
             }
        }
        else if (Application.platform == RuntimePlatform.WindowsPlayer)
        {
             var mousePosition = Mouse.current.position.ReadValue();
             UpdateSpringBoardPosition(mousePosition);
        }
    }
}

private void UpdateSpringBoardPosition(Vector2 position)
{
    _currentXPosition = _mainCamera.ScreenToWorldPoint(position).x;
    _currentXPosition = Mathf.Clamp(_currentXPosition, _minXPosition, _maxXPosition);
    transform.position = new Vector2(_currentXPosition, transform.position.y);
}

        声明了一个bool值用来控制模拟安卓平台,因为在编辑器中运行设备模拟器,Application.platform的值对应还是Windows平台,这个_isSimulateAndroid可以在编辑器运行时用来控制设定当前为安卓平台。

        监听触控点击的事件,也就是_pointAction的started和canceled事件。当触控点击发生时用一个bool值_isTouching记录,设置为true,然后在Update中去判断,将之前控制弹板的代码封装出来,传入一个position变量来避免重复代码。触屏点击的位置就是_positionAction对应的Vector2的值,可以用ReadValue来获取。

        完成以上步骤后在Unity中关联之前声明的两个Action,Point和Position。

模拟安卓设备运行

        运行Unity,然后再打开刚刚的Device Simulator,将游戏物体上的Is Simulate Android勾选上,在设备模拟器的窗口中就可以看到如下效果,这样就完成了弹板触屏版的移动逻辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/978686.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek 开源狂欢周(一)FlashMLA:高效推理加速新时代

上周末&#xff0c;DeepSeek在X平台&#xff08;Twitter&#xff09;宣布将开启连续一周的开源&#xff0c;整个开源社区为之沸腾&#xff0c;全球AI爱好者纷纷为关注。没错&#xff0c;这是一场由DeepSeek引领的开源盛宴&#xff0c;推翻了传统推理加速的种种限制。这周一&…

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机多特征分类预测

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机多特征分类预测 目录 分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机…

【Java项目】基于Spring Boot的校园闲置物品交易网站

【Java项目】基于Spring Boot的校园闲置物品交易网站 技术简介&#xff1a;采用Java技术、Spring Boot框架、MySQL数据库等实现。 系统简介&#xff1a;校园闲置物品交易网站是一个典型的管理系统&#xff0c;主要功能包括管理员&#xff1a;首页、个人中心、用户管理、商品类…

Ray生产集群配置

Ray 作为一个新兴的高性能分布式计算框架 Ray 的配置方法:包括集群资源、日志与调试、端口配置、TLS 认证以及 Java 应用程序的配置等 Ray 的配置技巧,如何提升分布式计算的效率和可靠性。 一、Ray 集群资源配置 (一)资源自动检测 Ray 在启动时默认会自动检测可用的资源…

cpp每日温度(单调栈)

题目如下 输入n和n个温度值&#xff0c;输出所找到对应温度后面比其更大的温度值 代码及解析如下&#xff1a; 谢谢观看&#xff01;&#xff01;&#xff01;

校园快递助手小程序毕业系统设计

系统功能介绍 管理员端 1&#xff09;登录&#xff1a;输入账号密码进行登录 2&#xff09;用户管理&#xff1a;查看编辑添加删除 学生信息 3&#xff09;寄件包裹管理&#xff1a;查看所有的包裹信息&#xff0c;及物流信息 4&#xff09;待取件信息&#xff1a;查看已到达的…

【Excel】 Power Query抓取多页数据导入到Excel

抓取多页数据想必大多数人都会&#xff0c;只要会点编程技项的人都不会是难事儿。那么&#xff0c;如果只是单纯的利用Excel软件&#xff0c;我还真的没弄过。昨天&#xff0c;我就因为这个在网上找了好久发好久。 1、在数据-》新建查询-》从其他源-》自网站 &#xff0c;如图 …

如何使用豆包AI来快速提升编程能力?

对于编程新手来说&#xff0c;提升编程能力面临三座大山&#xff0c;首先现在很多计算机专业学生几年下来代码量非常之少&#xff0c;有的都不知道Github是何物。要知道编程是最能体验prctice make perfect的技能之一&#xff0c;在前期积累的阶段&#xff0c;往往要大量的去刷…

机器学习:强化学习的epsilon贪心算法

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是一种机器学习方法&#xff0c;旨在通过与环境交互&#xff0c;使智能体&#xff08;Agent&#xff09;学习如何采取最优行动&#xff0c;以最大化某种累积奖励。它与监督学习和无监督学习不同&#xff0c;强调试错…

C++初阶—list类

第一章&#xff1a;list的介绍及使用 1.1 list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指…

2024年群智能SCI1区:多策略集成粒子群算法GSRPSO,深度解析+性能实测

目录 1.摘要2.算法原理3.结果展示4.参考文献5.代码获取 1.摘要 本文提出了一种新的多策略集成粒子群算法&#xff08;GSRPSO&#xff09;&#xff0c;用于提高宫颈癌图像的多阈值分割精度。GSRPSO通过四种策略协同工作&#xff0c;增强了算法的优化能力。动态参数平衡了探索与…

lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并、行高设置等。

入口类&#xff1a;exportPdf package xcsy.qms.webapi.service;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.ibm.icu.text.RuleBasedNumberFormat; import com.lowagie…

SOME/IP-SD -- 协议英文原文讲解6

前言 SOME/IP协议越来越多的用于汽车电子行业中&#xff0c;关于协议详细完全的中文资料却没有&#xff0c;所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块&#xff1a; 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 5.1.3.1 E…

【13】智能合约进阶

13-1 SDK应用集成 13-1-1 蚂蚁链应用集成概述 蚂蚁区块链介绍 蚂蚁区块链通过引入P2P网络、共识算法、虚拟机、智能合约、密码学、数据存储等技术特性&#xff0c;构建一个稳定、高效、安全的图灵完备智能合约执行环境&#xff0c;提供账户的基本操作以及面向智能合约的功能调…

cesium 解决加载带动画的glb不播放动画问题

glb加载参考&#xff1a;cesium 添加几何对象 entity primitive_cesium.js 添加几何体-CSDN博客 使用entity方式加载的glb&#xff0c;默认会开启动画&#xff0c;但使用primitive加载的glb&#xff0c;需要手动开启动画 let modelPosition Cesium.Cartesian3.fromDegrees(..…

进程间通信(中)

对于上篇的学习&#xff0c;由于内容太多&#xff0c;我们接着继续&#xff08;上篇可点击进入查看&#xff09;进程间通信&#xff08;上&#xff09;https://blog.csdn.net/Small_entreprene/article/details/145623853?fromshareblogdetail&sharetypeblogdetail&sh…

文心一言AI创意画

介绍 文心一言是百度推出的新一代知识增强大语言模型&#xff0c;属于文心大模型家族的新成员。‌它能够与人对话互动、回答问题、协助创作&#xff0c;高效便捷地帮助人们获取信息、知识和灵感。‌ 特点 文心一言基于数万亿数据和数千亿知识进行融合学习&#xff0c;采用预训…

【读书笔记·VLSI电路设计方法解密】问题57:逻辑合成过程中插入测试的目的是什么

如第3章第20题所述&#xff0c;可测试性设计&#xff08;Design for Testability, DFT&#xff09;是创建具有商业价值的产品时需要考虑的一个非常重要的问题。为了实现DFT功能&#xff0c;使设计能够检测制造缺陷&#xff0c;需要在设计中添加额外的测试电路&#xff0c;而这些…

正则表达式–断言

原文地址&#xff1a;正则表达式–断言 – 无敌牛 欢迎参观我的个人博客&#xff1a;正则表达式特殊字符 – 无敌牛 断言assertions 1、(?...)&#xff1a;正向预查&#xff08;positive lookahead&#xff09;&#xff0c;表示某个字符串后面应该跟着什么。但这个字符串本身…

AI数据分析:用DeepSeek做数据清洗

在当今数据驱动的时代&#xff0c;数据分析已成为企业和个人决策的重要工具。随着人工智能技术的快速发展&#xff0c;AI 驱动的数据分析工具正在改变我们处理和分析数据的方式。本文将着重介绍如何使用 DeepSeek 进行数据清洗。 数据清洗是数据分析的基础&#xff0c;其目的是…