Los complementos son una excelente manera de agregar funcionalidad al editor de Godot con un mínimo esfuerzo. Le permiten agregar funciones como herramientas personalizadas, atajos útiles y elementos de menú para acelerar su flujo de trabajo. Este artículo lo guiará a través del proceso de creación de sus propios complementos para desbloquear todo el potencial de Godot. Nota: este artículo asume que está familiarizado con el editor de Godot y tiene un buen conocimiento de GDScript. Primeros pasos Para comenzar, descargue los materiales del proyecto a través del enlace Descargar materiales en la parte superior e inferior de esta página. A continuación, abre el proyecto EditorPlugins que encuentras en la carpeta de inicio y ábrelo en Godot. Antes de profundizar en los complementos, haré un recorrido rápido por el proyecto. Viene con una sola escena llamada main.tscn y algunos sprites. Abra la escena principal y observe los nodos del interior. Aquí hay una colección de nodos StaticBody2D y RigidBody2D que conforman una escena de física no interactiva. Si diriges tu atención al muelle de escenas, verás que todas tienen nombres según su función. Tenga en cuenta que solo se pueden seleccionar y mover los nodos de nivel superior, mientras que sus hijos están bloqueados. Esto es intencional para evitar que las formas de colisión y los sprites se muevan por sí solos por accidente. Ahora intente ejecutar el proyecto presionando F5 y vea qué sucede. Poco después de ejecutar el proyecto, verás el pequeño avatar azul cayendo sobre un cuadro rojo, mientras que el otro cuadro rojo cae de una plataforma. Aquí no hay ningún juego real involucrado, ya que la atención se centra en ampliar el editor. Ahora que conoces la escena, ¡es hora de aprender sobre los complementos! Descripción general de los complementos En Godot, los complementos son scripts que amplían la funcionalidad del editor. Puede escribir estos scripts usando GDScript o C# y no es necesario volver a compilar el motor para que funcionen. Además del script del complemento principal, puede agregar escenas y scripts adicionales al complemento para hacerlo aún más versátil. Estos funcionan de la misma manera que el resto de tu proyecto, lo que significa que puedes usar tu conocimiento existente de Godot para ampliarlo. Puede utilizar complementos para agregar botones, accesos directos e incluso pantallas completamente nuevas al editor. A continuación se muestran algunos ejemplos de lo que puede hacer con los complementos: Crear un administrador de conversaciones Integre Google Sheets en su proyecto para cargar datos Agregar importadores de recursos personalizados Cree sus propios tipos de nodos Cree automáticamente el tamaño correcto de colisionadores para sprites Estos son solo algunos de ideas para darle una idea de lo que puede hacer con los complementos. Si alguna vez pensaste en una característica que te gustaría en Godot, es muy probable que puedas encontrarla en un complemento o crear una propia. Creación de su primer complemento Para su primer complemento, agregará un botón a la barra de herramientas que alterna la visibilidad de un nodo seleccionado. Los complementos de scaffolding necesitan tres cosas para funcionar: Afortunadamente, Godot facilita la creación de nuevos complementos ya que está integrado en el editor. Para comenzar, abra la Configuración del proyecto a través de Proyecto ▸ Configuración del proyecto… en el menú superior. Ahora seleccione la pestaña Complementos y debería ver una lista vacía. Deben estar en una carpeta llamada addons en la raíz del proyecto. Necesitan un archivo llamado plugin.cfg que contenga los metadatos. Necesitan al menos un script que derive de EditorPlugin. Ahora haga clic en el botón Crear nuevo complemento y en la ventana de diálogo Crear un complemento. aparecerá. Godot creará los archivos necesarios para usted en función de la información que proporcione, ¡muy bien! Para este complemento del botón de visibilidad, complete la siguiente información: Nombre del complemento: Botón de visibilidad Subcarpeta: visibilidad_button Descripción: Muestre y oculte fácilmente un nodo seleccionado. Autor: Su nombre o nombre de usuario Nombre del script: visibilidad_button.gd Así es como debería verse: Luego, haga clic en el botón Crear para permitir que Godot cree los archivos necesarios para usted. Esto también abrirá automáticamente el script visibilidad_button.gd en el editor de scripts. Antes de editar el script, eche un vistazo a los archivos y carpetas que Godot ha creado para usted en el Dock del Sistema de archivos. Ahora hay una nueva carpeta llamada complementos que contiene una carpeta para el complemento llamado visibilidad_button. Dentro de esa carpeta, hay un archivo llamado plugin.cfg y un script llamado visibilidad_button.gd. plugin.cfg contiene los metadatos del complemento, mientras que el script contiene el código real. Nota: Quizás se pregunte por qué la carpeta de complementos no se llama complementos. En Godot, es posible agregar complementos que amplían la funcionalidad del editor, pero no son complementos. Los complementos son complementos de editor específicamente, que utilizan un script que se deriva de EditorPlugin. ¡Basta de andamios, es hora de echar un vistazo al código! Echando un vistazo más de cerca El script visibilidad_button.gd que Godot generó para usted contiene el siguiente código: @tool # 1 extends EditorPlugin # 2 func _enter_tree() -> void: # 3 # La inicialización del complemento va aquí. pase func _exit_tree() -> void: # 4 # La limpieza del complemento va aquí. pass Me tomé la libertad de agregar algunos comentarios numerados para que sea más fácil explicar lo que hace cada línea: La anotación @tool convierte un script normal en un script de herramienta. Esto significa que cualquier código del script se ejecutará en el editor. Esto es poderoso, pero también facilita la interrupción de escenas enteras si no se tiene cuidado. Aprenderá más sobre la anotación @tool en otro artículo. Mientras tanto, si desea saber más al respecto, consulte Código en ejecución en la página del editor de la documentación de Godot. Todos los complementos del editor deben heredar de EditorPlugin. Esta clase viene con un montón de funciones útiles para acceder y editar el editor de Godot. La función _enter_tree se llama cuando activa el complemento. Aquí configura todas las variables y referencias necesarias para su uso posterior. La función _exit_tree se llama cuando desactiva el complemento. Aquí es donde limpias todas las referencias. Manejo de la selección de nodos Para el complemento del botón de visibilidad, no necesitará las funciones _enter_tree y _exit_tree, así que elimínelas. Manejarás la inicialización y limpieza con otras funciones. Ahora agregue la siguiente función en lugar de las eliminadas: func _handles(object) -> bool: return object is Node Godot llama a la función _handles cuando selecciona un objeto. La clase Objeto es la clase base para todas las demás clases en Godot. Esta función devuelve verdadero si el complemento puede manejar el objeto seleccionado. En este caso, el complemento solo edita nodos, por lo que devuelve verdadero si el objeto seleccionado es una clase de Nodo o deriva de ella. Deberá realizar un seguimiento del nodo seleccionado usted mismo, así que agregue una nueva variable encima de la función _handles llamada node_to_edit: var node_to_edit: Node Con esta variable en su lugar, agregue la función _edit debajo de la función _handles: func _edit(object: Object ) -> void: # 1 if !object: # 2 return node_to_edit = objeto # 3 Godot llama a la función _edit justo después de que la función _handles devuelve verdadero. Solicita al editor que edite el objeto dado y es el lugar perfecto para almacenar una referencia al objeto seleccionado. Aquí hay una descripción general de lo que está sucediendo aquí: La función _edit pasa el objeto seleccionado, un Nodo en el caso de este complemento. Existe la posibilidad de que el objeto seleccionado sea nulo, por lo que debes verificar si no lo es. Si es nulo, regresa de la función y no haces nada. Almacene una referencia al objeto seleccionado para su uso posterior. Para verificar si este código funciona correctamente, agregue una declaración de impresión temporal al final de la función _edit: print(node_to_edit) Ahora guarde el script e intente seleccionar algunos nodos en el árbol de escena. Deberías ver el nombre del nodo seleccionado en la consola. Como puedes ver, ¡el complemento ya funciona! Nota: Cuando selecciona un nodo raíz como Main en este caso, la consola llamará a _edit dos veces. Afortunadamente, esto no afectará la funcionalidad del complemento. Ahora elimine o comente la declaración impresa que agregó y guarde el script nuevamente. La última función para reunirlo todo es la función _make_visible, agréguela debajo de la función _edit: func _make_visible(visible: bool) -> void: # 1 if visible: # 2 _add_button() else: # 3 _remove_button() Como el Función _edit, Godot llama a la función _make_visible después de que la función _handles devuelve verdadero. Maneja mostrar y ocultar la interfaz de usuario del complemento. También se llama al desactivar el complemento. Al mostrar el botón, lo creará y lo agregará a la barra de herramientas. Al ocultar el botón, lo eliminarás de la barra de herramientas y lo destruirás. Esta es una alternativa al uso de las funciones _enter_tree y _exit_tree para inicialización y limpieza. Aquí está el código anterior con más detalle: A la función _make_visible se le pasa un valor booleano, visible para indicarle a la interfaz de usuario que se muestre u oculte. Si visible es verdadero, agregue el botón a la barra de herramientas mediante la función _add_button. Si visible es falso, elimine el botón de la barra de herramientas mediante la función _remove_button. Después de agregar el código, obtendrá algunos errores ya que aún no ha agregado las funciones _add_button y _remove_button. Agregue estas funciones vacías para deshacerse de los errores: func _add_button() -> void: pass func _remove_button() -> void: pass Estos actuarán como marcadores de posición por ahora. En la siguiente sección agregará la lógica.

Source link