Buscar en el blog

sábado, 24 de abril de 2021

¿Cómo ver variables en el editor de unreal engine con C++? ¿Cómo llamar variables y funciones C++ desde los blueprint?

 

Una cosa fundamental cuando usamos C++ con Unreal Engine es cambiar valores desde el editor, osea acceder a variables y funciones hechas en C++.
Cuando cambiamos variables o accedemos a funciones desde el editor, podemos hacer pruebas rápidas evitando el compilado de C++ que lleva bastante tiempo. Existen macros en C++ que nos permiten conectarnos tanto al editor como a los blueprint. Hay muchos, en este post solo hablaremos de los más básicos.




Los macros los usaremos en el archivo con extesión ".H", siempre guardamos los archivos, compilamos para ver los cambios en el editor y tendremos en cuenta los modificadores de acceso public, private o protected.




Entonces para hacer que las variables sean visibles en el editor usamos un macro llamado UPROPERTY y entre paréntesis “VisibleAnywhere”.  Este macro podremos usarlo con cualquier modificador de acceso,(public,private,protected).  O sea en el caso de querer monitorear constantemente una variable de tipo INT quedaría así.



Luego de guardar el archivo + compilar al seleccionar la clase componente y poner el nombre, se ve la variable, pero no podemos modificar su valor.



Si queremos ver y modificar la variable usamos la UPROPERTY, pero esta vez entre paréntesis la palabra EditAnywhere.  Este macro podremos usarlo con cualquier modificador de acceso,(public,private,protected)


 Luego de guardar el archivo + compilar al seleccionar la clase componente y poner el nombre de la variable, podemos ver y modificar el valor de la misma. Esto es muy importante sobre todo cuando queremos cambiar valores al estar ejecutando el juego. Por ejemplo hacer pruebas con la velocidad de un enemigo.




Excelente, pero no puedo ver la variable desde los blueprint




Para ver las variables desde los blueprint es parecido, pero tenemos que usar la UPROPERTYy dentro colocar BlueprintReadOnly… Otra cosa MUY IMPORTANTE cuando hacemos referencía desde C++ a los blueprint el modificador de acceso de la variable tiene que ser public.



Luego de guardar el archivo + compilar podemos acceder a la variable desde los blueprint, teniendo el rendimiento y la compatibilidad con C++. Sin embargo solo vas a poder acceder haciendo un “get”, pero no vas a poder modificarla. Para buscarla rápidamente tengo la solapa Context Sensitive deshabilitado.


Entonces para ver y modificar el valor de la variable en la UPROPERTY usamos la palabra BlueprintReadWrite.




Luego de guardar el archivo + compilar podemos ver valores de C++ y también modificarlos desde los blueprint. Para buscarla rápidamente tengo la solapa Context Sensitive deshabilitado.



Y obviamente también es posible acceder a las funciones hechas en C++ desde un blueprint. Para esto usamos el Macro UFUNCTION y agregamos entre los paréntesis BlueprintCallable. No olvides que el modificador de acceso de la función sea public



Lo qué hace la función es enviar un mensaje por pantalla.



Entonces luego de guardar el archivo + compilar podemos llamarla desde el blueprint en la función beginPlay. Para buscarla rápidamente tengo la solapa Context Sensitive deshabilitado.



Un tema importante: En los blueprint no se olviden de hacer referencia a la clase componente en C++, ya que estás llamando a un método o variable public desde otra clase. Para buscarla rápidamente podes tener la solapa Context Sensitive deshabilitada.




Y tenemos nuestro hermoso hola mundo desde una función en C++ en un blueprint.




Como detalle final también es posible combinar dos o más parámetros en la UPROPERTY cómo por ejemplo;




No hay comentarios.:

Publicar un comentario