En la experiencia Tools son herramientas interactivas que los usuarios pueden equipar en sesiones, como espadas, lanzadores de cohetes y varitas mágicas.Puedes crear herramientas personalizadas en la experiencia, ponerlas en tu jerarquía de experiencia y escribir scripts para implementarlas para tus usuarios.
Crear una herramienta en la experiencia
Para el primer paso de la creación de cualquier herramienta en la experiencia, necesitas crear un objeto de herramienta para contener todos los elementos que componen la herramienta.Luego puedes agregar otras instancias al objeto de la herramienta, incluidas piezas y mallas, efectos de sonido y scripts que proporcionan funcionalidad.También puedes configurar un mango de herramienta, ajustar el agarre de la herramienta y personalizar tu icono de herramienta para mejorar la experiencia del usuario.
Crear el objeto de herramienta
Puedes crear un nuevo objeto de herramienta con los siguientes pasos:
En la ventana Explorador , pasa el mouse sobre Espacio de trabajo y haz clic en el botón ⊕ para mostrar la lista de objetos.
Seleccione Herramienta bajo la categoría Interacción .
Añadir piezas o mallas
Después de crear el objeto de herramienta, necesitas agregar Parts o MeshParts al modelo de herramienta o crear la herramienta como un artículo de inventario sin partes y mallas sin partes y mallas.Al igual que otros modelos, las herramientas en experiencia pueden consistir en múltiples Parts , por lo que necesitas conectar todas las partes de la herramienta juntas usando las restricciones de Weld.
Si quieres crear una herramienta sin agregar piezas o mallas, puedes crearla como un artículo de inventario.
Establecer el mango de la controlador
Para habilitar que los usuarios lleven herramientas, debe establecer un Part y llamarlo Handle para que se adhieran a la mano del usuario.El siguiente ejemplo muestra una varita mágica con tres partes: una punta brillante, el cuerpo principal y un mango rojo.Cuando un usuario equipa la varita, la mantiene en el Part llamado Handle .

Asegúrate de tener solo una Part llamada Handle .Si nombras múltiples Parts como Handle, la herramienta elige aleatoriamente uno de ellos como punto de conexión de la mano que podría causar problemas como usuarios que sostienen espadas en lugar de hojas.
Ajustar la orientación del agarre de la herramienta
Si la orientación del agarre de tu herramienta es incorrecta, como arrastrarse en el suelo o mirar hacia atrás, puedes corregirlo ajustando las propiedades de agarre bajo la categoría Apariencia en la ventana Propiedades .

Dado que la orientación de agarre ideal para cada herramienta es diferente, necesitas experimentar con el cambio de los valores junto al agarre hacia adelante , agarre hacia la derecha y agarre hacia arriba propiedades hasta que el agarre de tu herramienta se vea correcto.El siguiente ejemplo muestra posibles agarres incorrectos y correctos para una varita mágica:



También puedes habilitar personajes de usuario para desplazar herramientas de su mano con la propiedad GripPos .Esto puede ser útil al crear una herramienta que debería aparecer para descansar en el hombro del usuario.


Personalizar el íconode la herramienta
Las herramientas que un usuario posee se almacenan en su . Los usuarios pueden ver el icono de cada herramienta en sus mochilas en una barra de acciones :

En la ventana Propiedades de la herramienta, utilice las siguientes propiedades para personalizar la apariencia de la herramienta en la barra de acciones:
- ID de textura — El íconode la herramienta. Establece la ID de imagen para esta propiedad de la misma manera que las imágenes y los botones de imagen.
- ToolTip — El nombre de la descripción de la herramienta al pasar el mouse.
Activar y desactivar usuarios para soltar herramientas
Por defecto, un usuario puede soltar una herramienta presionando la tecla retroceso en Windows o eliminar en Mac.Puedes desactivar esta opción al establecer la propiedad CanBeDropped del instrumento a false.Si CanBeDropped es false , presionar Backspace o delete devuelve la herramienta a la mochila del usuario.
Crear herramientas como artículos de inventario
También puedes crear una herramienta en la experiencia sin partes o mallas como un artículo de inventario que espera la entrada del usuario, como un hechizo mágico que los personajes de usuario pueden hacer clic en otros o tocar la pantalla para lanzarlo.Las herramientas de elemento de inventario no requieren asas, por lo que debe desmarcar la propiedad Requiere asa en la ventana Propiedades de la herramienta.

Añade herramientas a tu experiencia
Una vez que termines de configurar tu herramienta en la experiencia, debes colocarla en la área adecuada de la jerarquía del objeto de tu experiencia.Dónde coloques la herramienta dentro de la jerarquía del objeto de la experiencia depende de su uso previsto.
herramientade inicio predeterminada
Si quieres que todos los usuarios comiencen con una herramienta en su inventario, ponla dentro de la carpeta Paquete de inicio .Cuando cualquier usuario se genera, el sistema copia la herramienta a su mochila.

herramientacoleccionable
Si quieres permitir que los usuarios recojan herramientas mientras se herramienta de movimiento, puedes colocar las herramientas en la jerarquía del espacio de trabajo en la jerarquía del explorador .Por ejemplo, quizás quieras colocar un lanzador de supercohetes en una zona difícil de alcanzar de tu mundo de experiencia.

Herramienta ganada y herramienta
Si quieres establecer una herramienta como premios cuando un usuario haga algo especial o la ofrezca a la venta en una tienda de experiencia, pon la herramienta dentro de Almacenamiento del servidor en la jerarquía de Explorador , que puede clonar la herramienta al inventario del usuario en el momento adecuado.

Añadir efectos de herramientas
Después de agregar sus herramientas a su experiencia, puede agregar scripts para habilitar a los usuarios a usar herramientas para hacer efectos especiales.
Eventos específicos de la herramienta
Puedes usar las siguientes cuatro condiciones específicas de herramientas que indican el estado de la herramienta y la entrada del usuario con ella en tu guión de script:
Tool:Equipped() : Ocurre cuando el usuario selecciona la herramienta de su mochila.
Tool:Unequipped() : Ocurre cuando el usuario suelta la herramienta o cambia de herramienta.
Tool:Activated() : Ocurre cuando el usuario comienza a activar la herramienta (haga clic, toque o presione A en un controlador para juego).
Tool:Deactivated() : Ocurre cuando el usuario detiene la entrada de activación (libera el botón o toca).
Aunque es posible que no necesite todas las cuatro condiciones al diseñar una herramienta, puede utilizar el siguiente script de código como plantilla de script de herramienta básica:
local tool = script.Parent
local function onEquip()
print("The tool is now equipped.")
end
local function onUnequip()
print("The tool is now unequipped.")
end
local function onActivate()
print("The tool is now activated.")
end
local function onDeactivate()
print("The tool is now deactivated.")
end
tool.Equipped:Connect(onEquip)
tool.Unequipped:Connect(onUnequip)
tool.Activated:Connect(onActivate)
tool.Deactivated:Connect(onDeactivate)
Este ejemplo de código asume que el script es un hijo de primer nivel dentro del objeto de herramienta.Si el script está en otro lugar, ajusta el camino en la línea 1 (el valor de tool) para apuntar al objeto de herramienta principal.
Añade un script básico
El siguiente ejemplo muestra los pasos para agregar un Script en el servidor que permite a los usuarios equipar una varita mágica que pueda cambiar de día y noche al hacer clic en la pantalla:
En la ventana del explorador, pasa el mouse sobre el objeto de herramienta y haz clic en el botón ⊕ para insertar un Script .
Copia el siguiente código y pégalo en tu Script.
local Lighting = game:GetService("Lighting")local tool = script.Parentlocal function onActivate()if Lighting.ClockTime >= 8 and Lighting.ClockTime < 16 thenLighting.ClockTime = 20elseLighting.ClockTime = 8endendtool.Activated:Connect(onActivate)Prueba tu experiencia recogiendo la herramienta y luego haciendo clic en cualquier lugar de la pantalla de tu experiencia para cambiar entre el día y la noche:
Diferentes tipos de scripts para la implementación de herramientas
Algunas herramientas solo necesitan un Script en el servidor para implementar, como el ejemplo anterior, pero la mayoría de las herramientas requieren tanto un Script en el servidor como un LocalScript en el cliente, donde cada una se encarga de ciertos aspectos del comportamiento de la herramienta.
Antes de agregar sus scripts, asegúrese de comprender la diferencia central entre cada introducirde script:
- El script gestiona los cambios dentro del mundo de experiencia general visible para todos los usuarios, como desbloquear una puerta y disparar una flecha.
- LocalScript gestiona las cosas que suceden solo en el dispositivo del usuario, como detectar la ubicación de donde tocan o hacen clic en la pantalla.
Aquí hay algunas herramientas de ejemplo y sus comportamientos gestionados por un script local o un script del servidor:
Herramienta | Guión local | scriptdel servidor |
---|---|---|
Varita del creador | Detecta donde el jugador toca o hace clic en la pantalla. | Crea una nueva parte en la ubicación dentro del mundo del juego donde el jugador tocó o hizo clic. |
Capa de invisibilidad | Hace al jugador invisible para todos los demás usuarios mientras el capa está equipada. | |
Arco mega-grande | Detecta cuánto tiempo el jugador activa la herramienta (tiempo entre la activación y la desactivación). | Dispara una flecha mágica con más o menos poder, dependiendo del tiempo de activación detectado. |
Para obtener más información sobre los diferentes tipos de scripts, vea Scripts.
Consejos de solución de problemas
Una herramienta podría funcionar bien en Studio, pero no en una experiencia en vivo de Roblox. Si ocurre esto, utilice los siguientes consejos para solucionar problemas:
- LocalScripts y Scripts no pueden escuchar directamente el uno al otro, por lo que debe agregar un RemoteEvent para enviar mensajes entre los dos scripts.
- Asegúrate de que cada Script y LocalScript solo se ocupa de lo que se supone que debe hacer.
Para obtener más información sobre RemoteEvents , consulte Eventos remotos y llamadas de devolución .