【杂谈】Godot4.4 导出到Android平台(调试导出)

学博而后可约,事历而后知要。

一、准备

要从Godot引擎导出项目,就需要准备导出模板,导出模板的版本需与Godot引擎的版本相同,这篇文章挂载了下载链接:【杂谈】Godot4.4下载指南
本文用的是Godot4.4.1,因此用的是4.4.1版本的导出模板,它长这样:

在这里插入图片描述
这个文件实际上就是zip压缩文件。

二、安装导出模板

打开Godot引擎,经编辑器->管理导出模板,即可弹出 导出模板管理器 ,选择从文件安装,找到下载好的导出模板,安装即可。

在这里插入图片描述

三、新建项目

我们从新建一个安卓项目开始:

第一步,渲染器选择 移动 或者 兼容 ,这里以移动为例,之后进入项目也可以更改渲染器,注意,项目路径必须为 全英文路径
在这里插入图片描述
第二步,新建一个场景,创建 Node2D 节点为根节点, Sprite2D 节点子节点, 并将引擎自带的 icon.svg 作为Sprite2D节点的纹理图片;

在这里插入图片描述
第三步,附加脚本,这里让AI随便写了个脚本,测试用,复制粘贴即可;

extends Sprite2D

var is_dragging := false
var touch_offset := Vector2.ZERO

func _input(event: InputEvent) -> void:
	# 安卓触摸按下事件
	if event is InputEventScreenTouch:
		if event.pressed:
			# 将屏幕坐标转换为父节点的局部坐标
			var touch_pos = get_parent().get_global_transform().affine_inverse() * event.position
			# 直接开始拖动(无需碰撞检测)
			is_dragging = true
			touch_offset = position - touch_pos
		else:
			is_dragging = false
	
	# 安卓拖动事件
	if is_dragging and event is InputEventScreenDrag:
		# 更新位置(自动跟随手指)
		var new_pos = get_parent().get_global_transform().affine_inverse() * event.position
		position = new_pos + touch_offset

第四步,在项目设置中设置显示窗口的大小为 1080x1920 ,手持设备朝向为 Portrait

第五步,点击运行按钮,在弹窗中,将当前场景设为主场景,没有设置主场景导出后会报错;

在这里插入图片描述
后面要更改主场景可以在项目设置->常规->应用->运行中更改;

在这里插入图片描述
第六步,运行后应该可以拖动窗口中图片;

请添加图片描述
若拖动无效则需要启用 鼠标模拟触摸

在这里插入图片描述

四、调试导出

第一步,进入项目->导出->添加Android,在导出选项中找到包;

在这里插入图片描述
第二步,更改唯一名称与名称。 唯一名称 不更改的话默认变成项目名称的英文小写,如果项目名称不是英文,则变成noname(注意上图的报错),而更改的话用英文替换即可, 名称则无要求;

在这里插入图片描述

第三步,由于各个平台的纹理压缩不一样,这里点击修复导入;

在这里插入图片描述
第四步,导出项目,在弹窗中勾选 使用调试导出 ,这样会默认使用godot内置的用于调试的密钥库,若需要正式导出需要自己配置密钥库,此外,这里的导出路径是自定义的,没有要求;
在这里插入图片描述
第五步,测试导出项目;

  • 可以在电脑中下载模拟器软件,将导出的文件拖进去就会自动安装;

在这里插入图片描述
若点击运行不了,可以更改渲染器为 兼容模式 导出,或者观察报错,架构有没有出问题,我这里报错勾选x86 64即解决,这些都是在模拟器中会有的兼容性问题。

在这里插入图片描述

  • 也可以传输到手机上手动安装

我这里通过微信传输文件,而由于​​微信的安全机制导致文件被重命名,本来是 .apk 后缀,下载下来就变成了 .apk.1

请添加图片描述
下载好后点击右上角保存;

在这里插入图片描述
再打开手机的文件管理器搜索该文件,然后把 .apk.1 后缀改回 .apk 后缀;

请添加图片描述
请添加图片描述
最后,找到重命名后的apk文件,安装后运行即可

请添加图片描述
调试导出完成!

五、正式导出

正式导出详见此文【杂谈】Godot4.4 导出到Android平台(正式导出)

### Godot 4.4 版本信息、功能和更新内容 Godot 是一款开源的游戏引擎,其最新版本(截至当前时间)尚未达到正式发布的 4.4 版本。然而,基于社区开发者的讨论和技术预览版的功能推测,可以总结一些可能的改进方向以及已知的功能特性。 #### 1. MVC 架构支持 在 Godot 的项目开发中,MVC(模型-视图-控制器)架构被广泛应用于提高代码可维护性和模块化设计。例如,在 View 部分,开发者可以通过脚本绑定 UI 节点并提供界面更新方法[^1]: ```gdscript # MainView.gd extends Control @onready var text_edit: TextEdit = $TextEdit func ui_update(text: String): text_edit.text = text ``` 这种模式使得逻辑层与表现层分离,便于团队协作和后期维护。 #### 2. 场景资源加载优化 对于场景资源的动态加载,`preload()` 函数是一个常用工具。但如果路径错误,则可能导致程序报错。因此建议开发者仔细核对文件系统的实际路径设置[^2]: ```gdscript const SLOT_UI = preload("res://slot_ui.tscn") var instance = SLOT_UI.instantiate() add_child(instance) ``` 通过这种方式,能够有效减少因路径不匹配引发的问题。 #### 3. 建筑拖拽与旋转交互 为了增强用户体验,许多游戏需要实现物体的拖拽和自由旋转操作。这通常涉及监听用户的输入事件,并结合物理模拟来调整对象的位置及角度[^3]: ##### 主要步骤概述如下: - 创建必要的节点结构; - 编写 `main.gd` 和 `building.gd` 文件处理核心业务逻辑; - 导入外部素材作为视觉组件; - 定义特定的动作映射如 `left_click` 或者 `right_click` 来响应不同类型的用户行为。 以下是简单的拖放实现片段: ```gdscript # building.gd extends Node2D var is_dragging = false var start_pos = Vector2.ZERO func _input(event): if event is InputEventMouseButton and event.button_index == BUTTON_LEFT: if event.pressed: is_dragging = true start_pos = event.position - global_position elif is_dragging: is_dragging = false if event is InputEventMouseMotion and is_dragging: self.global_position = event.position - start_pos ``` #### 4. 自定义容器样式扩展 除了内置的标准控件外,还可以利用继承机制来自定义更复杂的布局管理器。比如模仿现代网页风格的设计方案——即所谓的“类网页布局容器”,它允许我们灵活控制页面背景色、纹理贴图以及其他装饰效果[^4]: ```gdscript # WebLikeContainer.gd @tool class_name WebLikeContainer extends HCenterContainer @export var bg_color := Color.WHITE setget set_bg_color @export var bg_image: Texture2D setget set_bg_image @export var bg_modulate := Color.WHITE setget set_bg_modulate func _draw(): var rect = get_rect() * get_global_transform() draw_rect(rect, bg_color) if bg_image != null: draw_texture_rect(bg_image, rect, false, bg_modulate) func set_bg_color(value): if value != bg_color: bg_color = value queue_redraw() func set_bg_image(value): if value != bg_image: bg_image = value queue_redraw() func set_bg_modulate(value): if value != bg_modulate: bg_modulate = value queue_redraw() ``` 以上代码展示了如何构建一个具有高级绘图能力的新类型容器。 --- ### 总结 综上所述,虽然官方文档还未完全公开关于 Godot Engine v4.4 所有细节改动清单,但从现有资料来看,该版本将继续围绕性能提升、API 改善以及新特性的引入展开工作。这些进步无疑将进一步巩固这款跨平台创作工具的地位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ForBigData

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值