Код: Выделить всё
extends Node2D
# TODO: Update to match your plugin's name
var _plugin_name = "GodotSensorPlugin"
var _android_plugin
func _ready():
if Engine.has_singleton(_plugin_name):
_android_plugin = Engine.get_singleton(_plugin_name)
else:
printerr("Couldn't find plugin " + _plugin_name)
< /code>
my export_plugin.gd:
@tool
extends EditorPlugin
# A class member to hold the editor export plugin during its lifecycle.
var export_plugin : AndroidExportPlugin
func _enter_tree():
# Initialization of the plugin goes here.
export_plugin = AndroidExportPlugin.new()
add_export_plugin(export_plugin)
func _exit_tree():
# Clean-up of the plugin goes here.
remove_export_plugin(export_plugin)
export_plugin = null
class AndroidExportPlugin extends EditorExportPlugin:
var _plugin_name = "GodotSensorPlugin"
func _supports_platform(platform):
if platform is EditorExportPlatformAndroid:
return true
return false
func _get_android_libraries(platform, debug):
if debug:
return PackedStringArray([_plugin_name + "/bin/debug/" + _plugin_name + "-debug.aar"])
else:
return PackedStringArray([_plugin_name + "/bin/release/" + _plugin_name + "-release.aar"])
func _get_android_dependencies(platform, debug):
# TODO: Add remote dependices here.
if debug:
return PackedStringArray(["androidx.health.connect:connect-client:1.1.0-rc02",
"com.google.android.material:material:1.10.0",
"androidx.appcompat:appcompat:1.6.1",
"androidx.constraintlayout:constraintlayout:2.1.4",
"androidx.navigation:navigation-fragment-ktx:2.6.0",
"androidx.navigation:navigation-ui-ktx:2.6.0"])
else:
return PackedStringArray(["androidx.health.connect:connect-client:1.1.0-rc02",
"com.google.android.material:material:1.10.0",
"androidx.appcompat:appcompat:1.6.1",
"androidx.constraintlayout:constraintlayout:2.1.4",
"androidx.navigation:navigation-fragment-ktx:2.6.0",
"androidx.navigation:navigation-ui-ktx:2.6.0"])
func _get_name():
return _plugin_name
My Plugin Main File (который находится в SRC/DE/PATH/TO/MY/PLUGIN):
Код: Выделить всё
package de.path.to.my.plugin
import android.content.pm.PackageManager
import androidx.activity.ComponentActivity
import androidx.activity.result.contract.ActivityResultContract
import androidx.health.connect.client.HealthConnectClient
import androidx.health.connect.client.PermissionController
import androidx.health.connect.client.records.StepsRecord
import androidx.health.connect.client.request.ReadRecordsRequest
import androidx.health.connect.client.time.TimeRangeFilter
import org.godotengine.godot.Godot
import org.godotengine.godot.plugin.GodotPlugin
import org.godotengine.godot.plugin.UsedByGodot
import java.time.Instant
class HealthConnectBridge(godot: Godot) : GodotPlugin(godot) {
private val componentActivity: ComponentActivity
get() = godot.getActivity() as ComponentActivity
private val client: HealthConnectClient by lazy {
HealthConnectClient.getOrCreate(componentActivity)
}
override fun getPluginName(): String = "GodotSensorPlugin"
< /code>
Я также обновил путь в BuildConfig: < /p>
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String LIBRARY_PACKAGE_NAME = "de.path.to.my.plugin";
public static final String BUILD_TYPE = "debug";
// Field from default config.
public static final String GODOT_PLUGIN_NAME = "GodotSensorPlugin";
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... urns-false
Мобильная версия