2025年最新 unityHub游戏引擎开发2d手机游戏和桌面游戏教程

设置开发编辑器 :

以下是一个简化版的移动控制代码,不依赖自定义输入配置,直接使用 Unity 新输入系统的默认绑定,并兼容手机端的 Joystick Pack 虚拟摇杆:

SimplePlayerMovement

using UnityEngine;
using UnityEngine.InputSystem;[RequireComponent(typeof(Rigidbody2D))]
public class SimplePlayerMovement : MonoBehaviour
{[Header("移动设置")]public float moveSpeed = 5f;public bool allowDiagonal = true;[Header("虚拟摇杆设置 (Joystick Pack)")]public VariableJoystick variableJoystick; // 拖入Joystick Pack的摇杆private Rigidbody2D rb;private Vector2 movement;// 输入动作private InputAction moveAction;void Awake(){rb = GetComponent<Rigidbody2D>();// 初始化默认输入动作(无需自定义配置)var inputActionMap = new InputActionMap("Player");moveAction = inputActionMap.AddAction("Move",InputActionType.Value, "<Gamepad>/leftStick",null, null, "<Keyboard>/a,<Keyboard>/d,<Keyboard>/w,<Keyboard>/s,<Keyboard>/leftArrow,<Keyboard>/rightArrow,<Keyboard>/upArrow,<Keyboard>/downArrow");inputActionMap.Enable();}void Update(){// 优先使用虚拟摇杆输入(手机端)if (variableJoystick != null){movement = variableJoystick.Direction;}// 否则使用键盘/手柄输入(PC端)else{movement = moveAction.ReadValue<Vector2>();}// 处理斜向移动限制if (!allowDiagonal && movement.sqrMagnitude > 0){if (Mathf.Abs(movement.x) > Mathf.Abs(movement.y))movement.y = 0;elsemovement.x = 0;}}void FixedUpdate(){// 应用移动rb.velocity = movement * moveSpeed;}
}

以下是一个简化版的移动控制代码,不依赖自定义输入配置,直接使用Unity新输入系统的默认绑定,并兼容手机端的Joystick Pack虚拟摇杆:


    


### 使用说明

#### 1. 准备工作
- 确保已安装 **Joystick Pack**(可在Unity Asset Store免费获取)

地址Virtual Joystick Pack | Utilities Tools | Unity Asset Store

- 确保已安装 **Input System** 包(Window > Package Manager)

搜索全包名进行安装 com.unity.inputsystem

安装完成后 重启unity 会自动 却换喂最新的Input Actions 系统 

如果如果没有切换到最新系统请配置以下选项

安装好先导入 

#### 2. 手机端设置(使用Joystick Pack)


1. 创建UI摇杆:
   - 从Joystick Pack的Prefabs中拖拽一个`Variable Joystick`到Canvas
   - 调整位置(建议左下角)和大小
   - 确保Canvas有`EventSystem`(没有的话会自动创建)

下面的设置摇杆会在手机触摸的位置出现 手指触摸到哪里,摇杆就会出现到哪里

2. 关联脚本:
   - 将`SimplePlayerMovement`脚本添加到角色
   - 在Inspector中将创建的`Variable Joystick`拖入脚本的`variableJoystick`参数框


#### 3. PC端设置(无需额外配置)
- 直接运行即可使用:
  - WASD键或方向键控制上下左右
  - 手柄左摇杆也可直接使用


#### 4. 关键特性
- 无需自定义Input Actions配置文件,代码内置默认输入绑定
- 自动优先使用虚拟摇杆输入(手机端),没有摇杆时自动切换到键盘输入(PC端)
- 可通过`allowDiagonal`开关控制是否允许斜向移动
- 适用于2D项目,自动添加Rigidbody2D组件


这种方式部署简单,无需处理复杂的输入配置,只需关联Joystick Pack的虚拟摇杆即可在手机端使用,PC端则自动支持键盘和手柄输入。

在Unity中打包项目,即将项目构建为可在目标平台运行的可执行文件或安装包,不同平台的打包步骤略有差异,以下是常见平台的打包流程:

### 一、Windows平台打包
1. **准备工作**
确保项目已经完成测试,没有明显的错误和异常。同时,关闭不必要的后台程序,以保证打包过程的顺利进行。
2. **打开Build Settings窗口**
点击菜单栏中的`File` -> `Build Settings`,打开构建设置窗口。
3. **选择目标平台**
在“Platform”列表中,选择`PC, Mac & Linux Standalone`,然后点击`Switch Platform` 按钮,Unity会自动切换项目的平台设置(如果是首次切换,可能需要一些时间来导入相关资源和配置)。
4. **设置打包选项**
    - **Player Settings**:点击`Player Settings`按钮,进入播放器设置界面。在这里可以设置游戏的图标(`Icon`)、名称(`Product Name`)、版本号(`Version`)、分辨率、图形质量等各种参数。
    - **Build Options**:在Build Settings窗口中,还可以设置其他构建选项,比如`Development Build`(开发构建,会包含调试信息,方便测试)、`Autoconnect Profiler`(自动连接性能分析器)等。如果是正式发布,一般不勾选`Development Build`。
5. **选择输出路径**
点击`Build`按钮(如果想直接构建并运行,点击`Build And Run`),在弹出的文件浏览器中,选择一个文件夹来存放打包后的文件。
6. **开始打包**
确认输出路径后,点击`Save`,Unity就会开始打包项目。打包时间取决于项目的大小和复杂程度,完成后,在指定的输出路径下会生成可执行文件(`.exe`)以及相关的资源文件夹。

### 二、Android平台打包
1. **安装必要的软件和组件**
    - **JDK**:确保已经安装Java Development Kit,并且配置好环境变量。
    - **Android SDK**:安装Android Software Development Kit,并在Unity中配置好SDK路径(`Edit` -> `Preferences` -> `External Tools`,设置`Android SDK`路径)。
    - **NDK**:下载并配置好Android NDK,同样在`External Tools`中设置`Android NDK`路径。

2. **打开Build Settings窗口**
和Windows平台一样,点击`File` -> `Build Settings`打开构建设置窗口。
3. **选择目标平台**
在“Platform”列表中选择`Android`,然后点击`Switch Platform` 按钮。
4. **设置打包选项**
    - **Player Settings**:进入播放器设置界面,设置游戏图标、名称、版本号等基本信息。此外,还需要设置`Package Name`(包名,格式通常为`com.公司名.游戏名`,是应用在Android系统中的唯一标识)、`Minimum API Level`(最低支持的Android API版本)等参数。
    - **Other Settings**:在这部分可以设置屏幕方向(`Orientation`)、图形API(一般选择`OpenGLES3`)等。
    - **Publishing Settings**:点击`Publishing Settings`,配置Keystore(用于签名应用,发布到应用商店必须进行签名),可以选择创建新的Keystore或者使用已有的。
5. **选择输出路径**
点击`Build`按钮(或`Build And Run`),在弹出的文件浏览器中选择存放APK文件的路径。
6. **开始打包**
确认路径后,点击`Save`,Unity会开始构建Android项目,完成后会生成APK文件(如果选择了`Build And Run`,会自动安装并运行在连接的Android设备或模拟器上)。

### 三、iOS平台打包
1. **安装必要的软件和组件**
    - **Mac电脑**:iOS打包必须在Mac电脑上进行,并且安装了最新版本的Xcode。
    - **配置证书和描述文件**:在Apple Developer网站上创建并下载开发者证书、描述文件等,然后在Xcode中进行配置。
2. **打开Build Settings窗口**
点击`File` -> `Build Settings`。
3. **选择目标平台**
在“Platform”列表中选择`iOS`,点击`Switch Platform` 按钮。
4. **设置打包选项**
    - **Player Settings**:设置游戏图标、名称、版本号等,`Bundle Identifier`(包标识符,类似于Android的包名,是iOS应用的唯一标识)等参数必须正确设置。
    - **Other Settings**:设置屏幕方向、图形API等。
    - **Publishing Settings**:在这配置签名相关设置,选择之前创建和配置好的证书和描述文件。
5. **选择输出路径**
点击`Build`按钮,选择一个文件夹来存放打包后的Xcode项目文件。
6. **后续处理**
Unity打包完成后会生成一个Xcode项目,打开该项目,在Xcode中进行一些最后的设置和检查,然后使用Xcode的`Archive`功能来生成最终的IPA文件,用于发布到App Store或进行企业内部分发。
 
在打包过程中,如果遇到错误,可查看Unity的Console窗口或相关构建日志,根据错误提示来排查和解决问题。 

关于Android SDK Build Tools Install failed: Installation Failed 安装下载失败的终极解决方案

最低22 最高 30 可以 unity 对应哪些版本的构建工具

当 Unity 项目的Minimum API Level 设为 22(Android 5.1)、Target API Level 设为 30(Android 11)时,对应的构建工具版本选择如下:

一、核心工具版本要求

  1. Android SDK Build Tools
    推荐使用 30.0.3(与 Target API Level 30 完全匹配,兼容性最佳)。

    • 原因:Build Tools 版本需≥Target API Level 对应的版本,30.0.3 是 API 30 的官方稳定版本,支持所有 Android 11 的特性,同时向下兼容 Minimum API 22。
    • 可选版本:30.0.0~30.0.4 之间的版本(均为 API 30 的配套工具),但 30.0.3 经过大量项目验证,稳定性最优。
  2. Android SDK Platform Tools
    必须≥32.0.0(解决之前提到的 “version 0.0 < 32.0.0” 错误)。
    推荐使用 34.0.4(最新稳定版),兼容 API 22~30 的所有平台,且修复了旧版本的部分兼容性问题。

  3. Android SDK Command-line Tools
    推荐 6.0 版本 或更高(如 10.0),需与 SDK 整体版本匹配。

    • 确保安装后能在SDK目录/cmdline-tools/latest/bin找到sdkmanager.bat,避免 Unity 检测失败。

二、Unity 版本兼容性

以上工具版本组合适用于 Unity 2019.4 及以上版本(包括 2020、2021、2022 等):

  • Unity 2019.4:对 API 30 的支持需通过补丁更新,建议升级到 2019.4.30f1 及以上。
  • Unity 2020.3 及更高:原生支持 API 30,无需额外配置,直接使用上述工具版本即可。

三、安装与配置要点

  1. 确保 SDK 目录下存在:

    • platforms/android-22(API 22 的系统镜像)
    • platforms/android-30(API 30 的系统镜像)
    • build-tools/30.0.3(对应版本的构建工具)
  2. 在 Unity 的Player Settings中:

    • 确认Minimum API Level = Android 5.1 (API Level 22)
    • 确认Target API Level = Android 11 (API Level 30)

按以上配置,既能保证应用在 Android 5.1~11 的设备上正常运行,又能满足大多数应用商店的上架要求(Target API 30 目前仍被主流平台支持),同时避免版本不匹配导致的构建错误。

上面的所有依赖请在 Android studio中下载匹配对应版本,重要,所有的版本都要一 一匹配

请选择自己Android studio 的SDK安装目录

下面目录是显示所有依赖文件

新建文件 -------->>>> bemulator目录记录与tools切换

记录原Android studio 开发环境中的bemulator 文件名

将bemulator虚拟机文件夹改名为tools 以适配unity 依赖文件的需求

将SDK文件夹 中的cmdline-tools 命令行 工具复制到

SDK目录中的build-tools 的对应API级别的30.0.3的目录中去

D:\development\Android\sdk\build-tools\30.0.3

让后到file 菜单中的Build ------> settings  

点击Build And Run 构建运行就可以了

如果你用打开了开发者模式的 手机, 数据线 电脑连接到一起,unity会将这个apk文件安装到手机

我们也可以通过手机 unity Remote APP (这个app请搜索百度自行下载)连接数据线到笔记本电脑 进行实时传输测试

注意连接测试的时候请打开手机开发者模式,进行测试。

如果你的游戏人物图层显示不出来 请检查图层问题 数越高 在图层上越置顶

如果你打包到手机上面显示不出人物,那么请点击 添加和项目中匹配的长江,将不匹配的场景取消勾选

整理不易,更多游戏开发教程请持续关注CSDN王家视频教程图书馆,点赞+关注+转发 亲!!!!!!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SuperMap GIS基础产品FAQ集锦(20250901)

一、SuperMap iDesktopX 问题1&#xff1a;咨询MapGIS数据迁移功能是否支持MapGIS 10版本&#xff0c;在迁移10版本的符号库时卡在0%并报错“升级6x系统库失败”。 11.3.0【问题原因】客户使用问题&#xff0c;mapgis6.7里面工程文件和符号库之前没有绑定关系&#xff0c;mapgi…

react-native-reanimated-carousel的API记录

‌核心属性‌‌data‌类型: Array<any>必填&#xff0c;轮播数据源&#xff0c;支持任意类型数据。‌renderItem‌类型: ({ item, index }) > React.ReactNode必填&#xff0c;自定义卡片渲染函数&#xff0c;参数包含当前项和索引。‌width/height‌类型: number控制…

TypeScript 泛型入门(新手友好、完整详解)

目标读者&#xff1a;刚学 TS 的前端开发者&#xff0c;或希望把泛型用到实际工程&#xff08;请求封装、组件复用&#xff09;中的同学。目录 为什么需要泛型&#xff08;直观动机&#xff09;基本语法与例子&#xff08;函数、接口、类&#xff09;泛型约束&#xff08;exten…

Linux ARP老化机制/探测机制/ip neigh使用

文章目录1. ARP状态机1.1 ARP状态类型1.2 状态转换图2. 超时时间与参数2.1 主要超时参数2.1.1 基础时间参数2.1.2 探测相关参数2.1.3 垃圾回收参数3. 主机发送ARP报文的时机3.1 发送数据包时发现ARP缓存中没有目标IP的MAC地址3.2 ARP条目进入STALE状态后需要发送数据3.3 定期维…

便携式显示器怎么选?:6大关键指标全解析

地铁通勤路上&#xff0c;程序员小陈掏出背包里的便携屏&#xff0c;连接手机即刻扩展出第二个工作窗口&#xff0c;赶在上班前修复了紧急bug&#xff1b;咖啡厅里&#xff0c;设计师阿琳用笔记本加便携屏的双屏组合&#xff0c;一边参看客户brief一边修改方案&#xff0c;效率…

以太坊网络

以太坊的网络和以太网是两个完全不同的概念&#xff0c;虽然它们的名称听起来相似&#xff0c;但它们属于不同的技术领域。以太坊网络&#xff08;Ethereum Network&#xff09;领域&#xff1a;区块链和加密货币定义&#xff1a;以太坊是一个开源区块链平台&#xff0c;支持智…

nano banana官方最强Prompt模板来了!六大场景模板详解

最近&#xff0c;相信大家的朋友圈和社交媒体都被一个叫nano banana的AI图像生成工具刷屏了。从精致的手办模型到名画人物穿越&#xff0c;再到中土世界场景还原&#xff0c;nano banana已然成为了最火爆的“整活工具之一。刚刚&#xff0c;谷歌为nano banana推出了官方Prompt模…

LeetCode 2825.循环增长使字符串子序列等于另一个字符串

给你一个下标从 0 开始的字符串 str1 和 str2 。 一次操作中&#xff0c;你选择 str1 中的若干下标。对于选中的每一个下标 i &#xff0c;你将 str1[i] 循环 递增&#xff0c;变成下一个字符。也就是说 ‘a’ 变成 ‘b’ &#xff0c;‘b’ 变成 ‘c’ &#xff0c;以此类推&a…

【无人机】1.编译betaflight和cleanflight的固件

在2023年&#xff0c;betaflight腾飞&#xff0c;而cleanflight已经结束更新&#xff0c;但是用cleanflight的原因是因为他最后版本支持stm32f103系列。不用betaflight因为手头还没有f405和f411&#xff0c;只有一个不支持的f407和f401&#xff0c;所以。。接下来开始步骤&…

刻意练习理论

刻意练习理论 一、理论概述 刻意练习&#xff08;Deliberate Practice&#xff09;是由心理学家安德斯艾利克森&#xff08;Anders Ericsson&#xff09;提出的一种系统化学习方法&#xff0c;核心观点是卓越并非源于天赋&#xff0c;而是通过针对性训练获得。其理论基础来自对…

【FastDDS】Layer DDS之Domain ( 04-DomainParticipantFactory)

Fast DDS 域参与者工厂&#xff08;DomainParticipantFactory&#xff09;详解 一、域参与者工厂&#xff08;DomainParticipantFactory&#xff09;基础定义 域参与者工厂&#xff08;DomainParticipantFactory&#xff09;的唯一作用是实现域参与者&#xff08;DomainPartici…

树莓集团建数字产业学院:产教融合强化成渝人才链与产业链衔接

成渝地区双城经济圈建设是国家重大发展战略&#xff0c;而人才链与产业链的有效衔接&#xff0c;是推动成渝地区产业高质量发展的关键。树莓集团顺应时代发展需求&#xff0c;搭建数字产业学院&#xff0c;以产教融合为纽带&#xff0c;不断强化成渝人才链与产业链的衔接&#…

在 ASP.NET 8 WebAPI 中使用不同的提供程序验证多个令牌(Token)及常见问题解答

介绍作为 ASP.NET 框架的最新版本&#xff0c;ASP.NET 8提供了强大的功能&#xff0c;可用于构建安全且可扩展的 Web API。API 开发的一个关键方面是身份验证&#xff0c;它确保只有授权用户或服务才能访问受保护的资源。在本文中&#xff0c;我们将探讨如何在 ASP.NET 8 API 中…

工业相机为啥丢包?黑条 / 撕裂的原因 + 解决办法,一看就懂

工业相机为啥丢包&#xff1f;黑条/撕裂的原因解决办法&#xff0c;一看就懂 工业相机拍图时出现黑条、撕裂、花屏&#xff0c;别急着换设备——大概率是“数据丢包”在搞鬼。尤其是高频率、高分辨率采图时&#xff0c;数据传输稍出问题&#xff0c;图像就会出故障。今天用“快…

【IQA技术专题】NIQE代码讲解

本文是对NIQE图像质量评价指标的代码解读&#xff0c;原文解读请看NIQE文章讲解。 本文的代码来源于IQA-Pytorch工程。 1、原文概要 NIQE实现了无参考的图像质量评价指标&#xff0c;可以有效地对图像的感知&#xff08;Fidelity&#xff09;质量进行评估。本文提出了一种完全…

配置时钟分频与倍频

在STM32微控制器中&#xff0c;“配置时钟分频与倍频”是一个关键步骤&#xff0c;它允许开发者根据应用需求调整系统时钟的频率。以下是对这一概念的详细解释&#xff1a;时钟源与基础频率时钟源&#xff1a;STM32微控制器通常支持多种时钟源&#xff0c;如高速外部时钟&#…

【深度学习新浪潮】视觉大模型在预训练方面有哪些关键进展?

近年来,视觉大模型在预训练领域取得了多项突破性进展,涵盖架构设计、多模态融合、数据利用效率及训练策略等多个维度。以下结合2024-2025年最新研究成果,从技术创新和应用突破两方面展开分析: 一、架构创新:突破分辨率与模态限制 超高分辨率预训练 伯克利与英伟达提出的P…

Elasticsearch原理篇

Elasticsearch原理篇写在前面&#xff1a;用之于手&#xff0c;先明于心一、传统数据库的瓶颈&#xff1a;当数据量成为负担1. 千万级数据下的性能衰减2. 分页查询的“深水陷阱”3. 关联查询的扩展难题4. 全文检索能力薄弱二、Elasticsearch 的优势&#xff1a;为搜索而生的分布…

《我是如何用C语言写工控系统的漏洞和Bug》连载(1)内容大纲

第一部分&#xff1a;导论与基础 第1章 引言 1.1 工控系统的独特性和重要性 实时性、可靠性、长生命周期的要求与IT系统的差异&#xff1a;后果不再是信息泄露&#xff0c;而是物理世界的中断与破坏 1.2 为什么C语言依然是工控领域的主流&#xff1f; 性能、底层硬件操作、历史…

.Net程序员就业现状以及学习路线图(三)

一、.Net程序员就业现状分析 1. 市场需求与薪资水平 ‌市场需求两极分化‌&#xff1a;2025年数据显示&#xff0c;.Net开发岗位全国占比约0.009%&#xff0c;主要集中在深圳、上海等一线城市 2 3。高端岗位&#xff08;云原生/AI集成方向&#xff09;年薪可达36-60万&#xff…