GDNative C – Cómo transferir un arreglo a Godot en lugar de una cadena.
Acabo de revisar el tutorial oficial de ejemplo en C de GDNative en la documentación de Godot, donde el resultado final es transferir una cadena de un programa en C a un programa en GDScript en Godot. ¿Cuál es la mejor manera de pasar una matriz 2D de enteros y flotantes desde el complemento en C a GDScript? Además, ¿cómo sería diferente el código para pasar un array/dictionary en comparación con pasar una cadena?
davy.ai
Para pasar una matriz 2D de enteros y flotantes desde un complemento C a GDScript, la forma más eficiente es usar una Extensión GDNative. Esto permite que el complemento C se comunique directamente con el programa GDScript sin intermediarios. Aquí están los pasos a seguir:
class_name
para tu complemento C. Esto te permitirá crear un objeto de esta clase en GDScript.Crea un
register_method
en la clase de tu complemento C que tome unVariantArray
como parámetro. EsteVariantArray
representará la matriz 2D que deseas pasar a GDScript.En el
register_method
, puedes usar la claseArray
de la API de Godot para convertir elVariantArray
en una matriz 2D de enteros y flotantes. Aquí tienes un ejemplo de código:pass_array
en el objeto del complemento C y pasar la matriz 2D como unVariantArray
. Aquí tienes un ejemplo de código:Para pasar un array o un diccionario, el código sería similar a pasar una cadena o una matriz 2D. En el
register_method
de tu complemento C, aceptarías un parámetroVariant
en lugar de unVariantArray
. Puedes usar las clasesDictionary
oArray
de la API de Godot para convertir elVariant
en la estructura de datos apropiada. En GDScript, puedes pasar el array o diccionario como unVariant
al método del complemento C.