问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Godot Android配置指南

创作时间:
作者:
@小白创作中心

Godot Android配置指南

引用
CSDN
1.
https://m.blog.csdn.net/python_use/article/details/143097691

本文将详细介绍如何在Godot游戏引擎中配置Android开发环境。从安装必要的编译工具到最终的签名调试,每个步骤都包含详细的说明和具体的操作命令。

一、安装编译工具

1. 安装Java

  • x64 Compressed Archive:下载后直接解压到某个位置,无需安装。
  • x64 installer:下载后双击安装。

注意:不要通过百度直接搜索Java安装,这样你最多只能安装Java 8,而后续的操作需要最新版本的Android。

2. 安装cmdline-tools

根据Godot官方手册的指示,你需要确保安装以下组件:

  • Android SDK Platform-Tools 版本 34.0.0 或更高
  • Android SDK Build-Tools 版本 34.0.0
  • Android SDK Platform 34
  • Android SDK Command-line Tools(最新)
  • CMake 版本 3.10.2.4988404
  • NDK 版本 r23c(23.2.8568313)

配置步骤

  1. 解压下载的cmdline-tool,找到里面的bin目录。
  2. 打开命令提示符(cmd),输入以下命令:
sdkmanager --sdk_root=换成你的AndroidSDK路径 "platform-tools" "build-tools;34.0.0" "platforms;android-34" "cmdline-tools;latest" "cmake;3.10.2.4988404" "ndk;23.2.8568313"

按照提示一路“Y”下去,完成配置。

二、下载Android模板

建议使用IDM下载工具,因为其他方式可能会遇到问题。以下是不同版本的Godot导出模板下载链接:

同时,还需要下载rcedit工具,用于处理Windows资源文件:

三、配置

1. 部署资源

  1. C:\Users\你的用户名\AppData\Roaming\Godot\export_templates目录下新建一个名为4.2.1.stable的文件夹(根据你的Godot版本进行相应调整)。
  2. 将下载的android_debug.apkandroid_release.apk复制到这个目录。
  3. 在你的工程目录下新建一个android文件夹,然后在其中创建一个.build_version文件,写入你的Godot版本(例如4.2.1.stable)。
  4. 在工程目录下新建一个build目录,在其中创建一个.gdignore文件。
  5. build目录下创建一个templates文件夹,将下载的android_source.zip解压到这里。

完成上述步骤后,你的文件结构应该如下:

─android
└─build
└─templates
├─assetPacks
│ └─installTime
├─assets
├─gradle
│ └─wrapper
├─libs
│ ├─debug
│ └─release
├─res
│ ├─drawable
│ ├─drawable-nodpi
│ ├─values
│ ├─values-ar
│ ├─values-bg
│ ├─values-ca
│ ├─values-cs
│ ├─values-da
│ ├─values-de
│ ├─values-el
│ ├─values-en
│ ├─values-es
│ ├─values-es-rES
│ ├─values-fa
│ ├─values-fi
│ ├─values-fr
│ ├─values-hi
│ ├─values-hr
│ ├─values-hu
│ ├─values-in
│ ├─values-it
│ ├─values-iw
│ ├─values-ja
│ ├─values-ko
│ ├─values-lt
│ ├─values-lv
│ ├─values-nb
│ ├─values-nl
│ ├─values-pl
│ ├─values-pt
│ ├─values-ro
│ ├─values-ru
│ ├─values-sk
│ ├─values-sl
│ ├─values-sr
│ ├─values-sv
│ ├─values-th
│ ├─values-tl
│ ├─values-tr
│ ├─values-uk
│ ├─values-vi
│ ├─values-zh
│ ├─values-zh-rHK
│ └─values-zh-rTW
└─src
└─com
└─godot
└─game

2. Godot配置

  1. 打开Godot,点击项目 -> 导出,选择Android。
  2. 点击修复导入
  3. 进入编辑器 -> 编辑器设置,将SDK路径设置为你刚安装的SDK根目录。
  4. 再次点击项目 -> 导出,选择Android,此时应该可以成功导出到Android平台。

输入设置

为了让游戏在手机和平板电脑上支持触屏输入,需要在Godot中进行以下设置:

  1. 项目 > 项目设置Input Devices > Pointing下,启用Emulate Touch From Mouse
  2. Display设置中进入Window,在Stretch选项中将Mode设置为2dAspect设置为keep
  3. Handheld下将Orientation设置为portrait

接下来,我们需要修改Player.gd脚本来改变输入方式。以下是修改后的完整脚本:

extends Area2D
signal hit
export var speed = 400
var screen_size
# Add this variable to hold the clicked position.
var target = Vector2()
func _ready():
    hide()
    screen_size = get_viewport_rect().size
func start(pos):
    position = pos
    # Initial target is the start position.
    target = pos
    show()
    $CollisionShape2D.disabled = false
# Change the target whenever a touch event happens.
func _input(event):
    if event is InputEventScreenTouch and event.pressed:
        target = event.position
func _process(delta):
    var velocity = Vector2()
    # Move towards the target and stop when close.
    if position.distance_to(target) > 10:
        velocity = target - position
    if velocity.length() > 0:
        velocity = velocity.normalized() * speed
        $AnimatedSprite.play()
    else:
        $AnimatedSprite.stop()
    position += velocity * delta
    # We still need to clamp the player's position here because on devices that don't
    # match your game's aspect ratio, Godot will try to maintain it as much as possible
    # by creating black borders, if necessary.
    # Without clamp(), the player would be able to move under those borders.
    position.x = clamp(position.x, 0, screen_size.x)
    position.y = clamp(position.y, 0, screen_size.y)
    if velocity.x != 0:
        $AnimatedSprite.animation = "walk"
        $AnimatedSprite.flip_v = false
        $AnimatedSprite.flip_h = velocity.x < 0
    elif velocity.y != 0:
        $AnimatedSprite.animation = "up"
        $AnimatedSprite.flip_v = velocity.y > 0
func _on_Player_body_entered( body ):
    hide()
    emit_signal("hit")
    $CollisionShape2D.set_deferred("disabled", true)

签名调试

在项目根目录下打开命令提示符(cmd),运行以下命令生成调试密钥库:

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.jks -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999

最后,在Godot的导出设置中配置签名信息,即可成功导出APK文件。

参考文档

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号