En la experiencia Tools son herramientas interactivas que los usuarios pueden equipar en las sesiones, como espadas, lanzacohetes y varitas mágicas. Puede crear herramientas personalizadas en la experiencia, colocarlas en su jerarquía de experiencia y escribir scripts para implementarlas para sus usuarios.
Creando una herramienta en la experiencia
Para el primer paso de la creación de cualquier herramienta en la experiencia, necesita crear un objeto de herramienta para contener todos los elementos que componen la herramienta. Luego puede agregar otras instancias al objeto de herramienta, incluidas partes y mallas, efectos de sonido y scripts que proporcionan funcionalidad. También puede configurar un mango de herramienta, ajustar el mango de herramienta y personalizar el icono de su herramienta para mejorar la experiencia del usuario.
Creación del Objeto de Herramienta
Puede crear un nuevo objeto de herramienta con los siguientes pasos:
En la ventana Explorer , pase el cursor sobre Workspace y haga clic en el botón ⊕ para mostrar la lista de objetos.
Seleccione Herramienta en la categoría Interacción .
Añadiendo Partes o Mallas
Después de crear el objeto de herramienta, debe agregar Parts o MeshParts al modelo de herramienta o cree la herramienta como un elemento de inventario sin partes y mallas. Al igual que otros modelos, las herramientas en la experiencia pueden consistir en múltiples Parts, por lo que debe conectar todas las partes de la herramienta juntas utilizando las restricciones Weld.
Si desea crear una herramienta sin agregar piezas o mallas, puede crearla como un artículo de inventario .
Configurando la manija de la herramienta
Para permitir a los usuarios llevar herramientas, debe establecer un Part y darle el nombre Handle para adjuntarlo a la mano del usuario. El siguiente ejemplo muestra una varita mágica con tres partes: una punta brillante, el cuerpo principal y un controladorrojo. Cuando un usuario equipa la varita, la sostiene en el Part llamado Handle .
Asegúrate de tener solo un Part llamado Handle. Si nombras múltiples Parts como Handle, la herramienta elige aleatoriamente uno de ellos como el punto de fijación de la mano que podría causar problemas, como que los usuarios sostengan espadas en lugar de hilts.
Ajustando la orientación de la empuñadura de la herramienta
Si la orientación de agarre de tu herramienta es incorrecta, como arrastrar por el suelo o mirar hacia atrás, puedes arreglarlo ajustando las propiedades Grip en la categoría Appearance en la ventana Properties .
Dado que la orientación de agarre ideal para cada herramienta es diferente, debe experimentar cambiando los valores junto a las propiedades GripForward , GripRight y GripUp hasta que el agarre de su herramienta se vea correcto. El siguiente ejemplo muestra posibles agarres incorrectos y correctos para una varita mágica:
También puede permitir que los personajes de los usuarios compensen las herramientas de su mano con la propiedad GripPos . Esto puede ser útil al hacer una herramienta que debería aparecer en el hombro del usuario.
Personalización del icono de la herramienta
Las herramientas que posee un usuario se almacenan en su Backpack . Los usuarios pueden ver el icono de cada herramienta en sus mochilas en una barra de acción **** :
En la ventana de Propiedades de la herramienta, usa las siguientes propiedades para personalizar la apariencia de la herramienta en la barra de acciones:
- TextureID El íconode la herramienta. Establece el ID de la imagen para esta propiedad de la misma manera que las calcomanías y los botones de imagen.
- ToolTip El nombre de la herramienta flotante.
Habilitar y Deshabilitar a los Usuarios para Dejar Herramientas
De forma predeterminada, un usuario puede soltar una herramienta presionando la tecla Backspace en Windows o delete en Mac. Puede desactivar esta opción configurando la propiedad CanBeDropped de la herramienta en false. Si CanBeDropped es false, presionando Backspace o delete devuelve la herramienta a la mochila del usuario.
Creación de herramientas como artículos de inventario
También puedes hacer una herramienta en la experiencia sin partes o mallas como un artículo de inventario que espere la entrada del usuario, como un hechizo mágico en el que los personajes de los usuarios pueden hacer clic en otros o tocar la pantalla para lanzarlo. Las herramientas de artículos de inventario no requieren manijas, por lo que debe deseleccionar la propiedad RequiresHandle en la ventana Properties de la herramienta.
Añadiendo herramientas a tu experiencia
Una vez que termines de configurar tu herramienta en la experiencia, debes colocarla en el área adecuada de la jerarquía de objetos de tu experiencia. La ubicación de la herramienta dentro de la jerarquía de objetos de la experiencia depende de su uso previsto.
Herramienta de inicio predeterminada
Si quieres que todos los usuarios comiencen con una herramienta en su inventario, ponla dentro de la carpeta StarterPack . Cuando cualquier usuario aparece, el sistema copia la herramienta en su mochila.
Herramienta de colección
Si quieres permitir que los usuarios recojan herramientas a medida que se herramienta de movimiento, puedes colocar las herramientas en el Espacio de trabajo en la jerarquía Explorador . Por ejemplo, es posible que quieras colocar un súper lanzacohetes en un área de difícil acceso de tu mundo de experiencia.
Herramienta Obtenida y Comprada
Si desea establecer una herramienta como recompensas cuando un usuario hace algo especial u ofrecerlo a la venta en una tienda en la experiencia, coloque la herramienta dentro de ServerStorage en la jerarquía Explorer , lo que puede clonar la herramienta en la mochila del usuario en el momento adecuado.
Añadiendo efectos de herramientas
Después de agregar sus herramientas a su experiencia, puede agregar scripts para permitir a los usuarios usar herramientas para hacer efectos especiales.
Eventos específicos de herramientas
Puede usar las siguientes cuatro condiciones específicas de la herramienta que indican el estado de la herramienta y la entrada del usuario con ella en su script de herramienta:
Tool:Equipped() : Ocurre cuando el usuario selecciona la herramienta de su mochila.
Tool:Unequipped() : Ocurre cuando el usuario deja caer la herramienta o cambia de herramienta.
Tool:Activated() : Ocurre cuando el usuario comienza a activar la herramienta (clics, taps o presiona A en un controlador para juego).
Tool:Deactivated() : Ocurre cuando el usuario detiene la entrada de activación (releva el botón o toque).
Aunque es posible que no necesite las cuatro condiciones al diseñar una herramienta, puede usar el siguiente script de código como una 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)
Esta muestra de código asume que el script es un hijo de primer nivel dentro del objeto de herramienta. Si el script está en otra parte, ajusta la ruta en la línea 1 (el valor de tool) para apuntar al objeto de herramienta principal.
Añadiendo 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 puede cambiar de día y de noche haciendo clic en la pantalla:
En la ventana del Explorador, pase el cursor sobre el objeto de la herramienta y haga 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)Pon a 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 en 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 uno cuida de ciertos aspectos del comportamiento de la herramienta.
Antes de añadir tus scripts, asegúrate de entender la diferencia principal entre cada introducirde script:
- Script gestiona los cambios dentro del mundo de la experiencia general visible para todos los usuarios, como desbloquear una puerta y disparar una flecha.
- LocalScript gestiona 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 algunos ejemplos de herramientas y sus comportamientos administrados por un script local o un script de servidor:
Herramienta | Script local | Script del 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 que el jugador sea invisible temporalmente para todos los demás usuarios, mientras que la capa está equipada. | |
Mega-Arco | Detecta cuánto tiempo el jugador activa la herramienta (tiempo entre la activación y la desactivación). | Dispara una flecha mágica con mayor o menor poder, dependiendo del tiempo de activación detectado. |
Para obtener más información sobre los diferentes tipos de scripts, consulte Scripts .
Consejos para solucionar problemas
Una herramienta puede funcionar bien en Studio pero no en una experiencia de Roblox en vivo. Si esto ocurre, use los siguientes consejos para solucionar problemas:
- LocalScripts y Scripts no pueden escucharse 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 ocupe de lo que se supone que debe hacer.
Para más información sobre RemoteEvents, ver Eventos Remotos y Llamadas de Vuelta.