Normalmente, las funciones solo pueden usar la información que tienen codificada dentro de ellas. Sin embargo, a veces podría no saber de antemano cuál será esa información, o desea poder reutilizar la misma función con múltiples piezas de información similar. Por ejemplo, si quisieras usar una función para mostrar el nombre de la persona que completó un curso de obby más rápido en letras gigantes para todos. No sabrás el nombre del futuro ganador hasta que la carrera termine.
Los parámetros son marcadores de posición para la información que desea dar a la función en un momento posterior. Son como ventanas que te permiten pasar información a la función.
Usa parámetros y eventos para configurar una trampa
Este script creará una parte trampa que destruye cualquier cosa que la toque, incluidas otras partes. Tendrás que usar un parámetro para configurarla. Ten cuidado de anclar la trampa para que no caiga y destruya cosas involuntariamente.
Crea una nueva parte
Se necesita configurar una parte que destruirá cualquier cosa que la toque.
- Crea una nueva parte que no esté tocando nada. Si está tocando algo, podría activarse demasiado pronto.
- En el Explorador, renombra la parte: TrapPart.
- Ancla la parte.
Configura el script
Usa lo que sabes sobre variables y la jerarquía de experiencia para referenciar la parte trampa.
Agrega un nuevo script en la parte trampa. Renombra el script a TrapScript.
Elimina Hello World y agrega un comentario descriptivo.
Bajo el comentario, crea una nueva variable que encuentre el padre del script.
-- Destruye cualquier cosa que toque el padrelocal trap = script.Parent
Crea una función con un parámetro
La trampa utilizará una función para destruir cualquier cosa que toque la parte. Para que funcione, la función necesita saber qué tocó la parte. Y eso significa usar parámetros. Los parámetros se escriben dentro del () que viene después del nombre de la función. Se ven así:
local function functionName(parameterName)
end
La información real que se pasa a través del parámetro se llama un argumento. Crearás una nueva función llamada onTouch() con un parámetro llamado objectTouched que rastreará cualquier cosa que toque la trampa y luego destruirá la parte tocante.
Crea una función local. Puede tener cualquier nombre, pero esta lección usará onTouch
local trap = script.Parentlocal function onTouch()endDentro del (), escribe un nombre para el parámetro. Esta lección utilizará objectTouched.
local trap = script.Parentlocal function onTouch(objectTouched)endEntre local function onTouch() y end, crea una declaración de impresión. Usarás esto para verificar si algo está tocando la parte en la siguiente sección.
local trap = script.Parentlocal function onTouch(objectTouched)print("Algo tocó la trampa")end
Usa un evento para llamar a la función
Queremos que la función se ejecute siempre que algo toque la parte. Para que eso suceda, conecta la función al evento Touched. Los eventos son cosas que suceden en la experiencia. Como un jugador tocando una parte o perdiendo salud. Cuando una función está conectada a un evento, la función se ejecuta siempre que ocurre el evento.
El evento Touched se activa cada vez que una parte toca otra parte y puede ser utilizado para crear botones, trampas y otros objetos con los que los jugadores interactúan.
Debajo del end de la función, escribe trap.Touched:Connect(onTouch)
local trap = script.Parentlocal function onTouch(objectTouched)print("Algo tocó la trampa")end-- Conecta la función al evento Touchedtrap.Touched:Connect(onTouch)Haz clic en Test y luego toca la parte. Busca tu declaración de impresión de prueba: Algo tocó la trampa. Si no puedes ver la cadena en la ventana de Salida, verifica lo siguiente:
- Asegúrate de que la cadena "Algo tocó la parte!" esté entre local function onTouch() y end.
- Verifica que Touched esté escrito con mayúscula.
Ahora que la función está configurada correctamente, úsala para destruir cualquier cosa que toque la parte. Dentro de la función, después de la cadena, escribe objectTouched:Destroy(). El código completo debería ser:
local trap = script.Parentlocal function onTouch(objectTouched)print("Algo tocó la trampa")-- Destruye el objeto que tocaobjectTouched:Destroy()endtrap.Touched:Connect(onTouch)Prueba de nuevo y ve qué pasa cuando se toca la parte. Tu avatar debería acabar sin pies o brazos. Si la parte toca la cabeza o el cuello del avatar, podría incluso ser destruido por completo.
Resumen
Los parámetros se utilizan para pasar información que normalmente estaría fuera de alcance (donde una función no puede verla) a una función. Mientras tanto, los eventos son señales especiales que se activan dentro de la experiencia cuando sucede algo importante. Diferentes objetos tienen diferentes eventos. Las funciones pueden estar conectadas a eventos para que se llamen cada vez que se activa el evento. Este pequeño script conectó una función al evento Touched de la trampa, y pasó lo que estaba tocando la trampa a través del parámetro.