Herramientas de In-Experience

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

In-experience 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 hierarcha de experiencia y escribir scripts para implementarlas para tus usuarios.

Crear una herramienta in-experience

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 lo constituyen. Luego puedes agregar otros instancias a los objetos de herramienta incluyendo partes y mallas, efectos de sonido y scripts que proporcionan funcionalidades. También puedes configurar un man

Creando el objeto de herramienta

Puede crear un nuevo objeto de herramienta con los siguientes pasos:

  1. En la ventana Explorador , pasar el cursor sobre Espacio de Trabajo y hacer clic en el botón para mostrar la lista de objetos.

  2. Seleccione Herramienta en la categoría Interacción .

Añadir partes o mallas

Después de crear el objeto de la herramienta, necesitas agregar Parts o MeshParts al modelo de la herramienta o crear la herramienta como un elemento de inventario sin partes y mallas . Como otros modelos, las herramientas en la experiencia pueden

Si desea crear una herramienta sin agregar partes o mallas, puede crearla como un artículo de inventario .

Configurando el agarre de herramientas

Para habilitar que los usuarios lleven herramientas, necesitas establecer un Part y nombrarlo Handle para añadirlo a la mano del usuario. El siguiente ejemplo muestra una varita mágica con tres partes: una punta brillante, el cuerpo principal y una controladorroja. Cuando un usuario equipa la varita, la sostiene en la Class.

Asegúrese de tener solo un Part llamado Handle . Si nombra múltiples Parts como 1> Handle1> , la herramienta elige aleatoriamente uno de ellos como el punto de enganche de mano que puede causar problemas, como usuarios que sostienen cuchillas de espadas en lugar de agarradores.

Ajustar la Orientación del Agarre de Herramientas

Si la orientación de la agarre de tu herramienta es incorrecta, como arrastrar en el suelo o mirar hacia atrás, puedes arreglarlo ajustando Agarre propiedades bajo la categoría Apariencia en la ventana Propiedades .

Dado que la orientación de agarre para cada herramienta es diferente, debe experimentar con cambiar los valores junto a la GripForward , GripRight y GripUp propiedades hasta que su agarre se vea correcto. El siguiente ejemplo muestra posibles agarres incorrectos y correctos para una varita mágica:

Herramienta arrastrando en el suelo
Herramienta hacia atrás
Herramienta orientada correctamente

También puede habilitar personajes de usuario para desviar las herramientas de su mano con la propiedad GripPos . Esto puede ser útil cuando se hace una herramienta que debería aparecer en el hombro del usuario.

Desplazamiento predeterminado (0,0,0)
Desplazamiento de herramientas para el hombro

Personalizar el icono de la herramienta

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

En la ventana 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 los calcomanías y botones de imagen.
  • ToolTip — El nombre de la herramienta de on-ховер.

Habilitando y Deshabilitando a los Usuarios para Soltar Herramientas

Por defecto, un usuario puede soltar una herramienta presionando la tecla Backspace en Windows o delete en Mac. Puedes desactivar esta opción configurando la propiedad CanBeDropped de la herramienta para 2> force2> .

Crear herramientas como elementos de inventario

También puedes hacer una herramienta de in-experience 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 los usuarios pueden hacer clic en otros o tocar la pantalla para lanzarlo. Las herramientas de artículo de inventario no requieren manijas, así que debe deseleccionar la propiedad Requiere manijas en la ventana de propiedades de la herramienta.

Añadiendo herramientas a tu experiencia

Una vez que termines de configurar tu herramienta in-experience, debes colocarla en el área correcta de la hierarquía de objetos de tu experiencia. Dónde coloques la herramienta dentro de la hierarquía de objetos de tu experiencia depende de su uso previsto.

Herramienta de Inicio Por Defecto

Si quieres que todos los usuarios comienzen con un objeto en su inventario, ponlo dentro de la carpeta StarterPack . Cuando cualquier usuario se genere, el sistema copiará el objeto a su mochila.

Herramienta de coleccionista

Si desea permitir que los usuarios recolecten herramientas mientras se herramienta de movimiento, puede colocar las herramientas en el espacio de trabajo en la Explorador jerarquía. Por ejemplo, puede querer colocar un super lanzador de cohetes en un área difícil de alcanzar de su mundo de experiencia.

Objeto Comprado y Obtenido

Si desea establecer una herramienta como recompensa cuando un usuario hace algo especial o lo ofrece para la venta en una tienda de inicio de experiencia, coloque la herramienta dentro de Almacenamiento del servidor en la Explorador jerarquía, que puede clonar la herramienta al usuario de su mochila en el momento adecuado.

Agregar Efectos de Herramientas

Después de agregar sus herramientas a su experiencia, puede agregar scripts para permitir que los usuarios usen herramientas para hacer efectos especiales.

Eventos Específicos de Herramientas

Puede usar las siguientes cuatro condiciones específicas de herramientas que indican el estado de la herramienta y la entrada del usuario con ella en su script de herramientas:

  • Tool:Equipped() : Ocurre cuando el usuario selecciona la herramienta de su mochila.

  • Tool:Unequipped() : Ocurre cuando el usuario deja caer la herramienta o cambia las herramientas.

  • Tool:Activated() : Se produce cuando el usuario comienza a activar la herramienta (haz clics, tocas o presiona A en un controlador para juego).

  • Tool:Deactivated() : Ocurre cuando el usuario detiene la entrada de activación (libera el botón o el toque).

Aunque puede que no necesite todas las cuatro condiciones al diseñar una herramienta, puede usar el siguiente código de script como un modelo 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 código de ejemplo supone que el script es un hijo de nivel inicial dentro del objeto de herramientas. Si el script está en otro lugar, ajusta el camino en la línea 1 (el valor de tool ) para apuntar al objeto de herramientas de núcleo.

Agregar un script básico

El siguiente ejemplo muestra los pasos para agregar un Script al servidor que permite a los usuarios equipar una varita mágica que puede cambiar de día a noche haciendo clic en la pantalla:

  1. En la ventana Explorer, pasa el cursor sobre el objeto de herramienta y haz clic en el botón Script para insertar un Class.Script.

  2. Copia el código siguiente y pégalo en tu Script .


    local Lighting = game:GetService("Lighting")
    local tool = script.Parent
    local function onActivate()
    if Lighting.ClockTime >= 8 and Lighting.ClockTime < 16 then
    Lighting.ClockTime = 20
    else
    Lighting.ClockTime = 8
    end
    end
    tool.Activated:Connect(onActivate)
  3. Prueba tu experiencia eligiendo 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 requieren un Script en el servidor para implementar, como el ejemplo anterior, pero la mayoría de las herramientas requieren ambos un Script en el servidor y 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 clave entre cada introducirde script:

  • Script maneja los cambios dentro del mundo de experiencia general visible para todos los usuarios, como desbloquear una puerta y disparar una flecha.
  • LocalScript administra cosas que solo ocurren en el dispositivo del usuario, como detectar la ubicación de dónde tocan o hacen clic en la pantalla.

Aquí hay algunas herramientas de ejemplo y sus comportamientos administrados por un script local o un script del servidor:

HerramientaScript localScript del servidor
Varita del CreadorDetecta dónde toca o hace clic el jugador en la pantalla.Crea una nueva parte en el lugar dentro del mundo del juego donde el jugador tocó o hizo clic.
Capa de invisibilidadHace que el jugador sea invisible para todos los demás usuarios, mientras que el capa está equipada.
Mega-BowDetecta la duración de la activación / desactivado del jugador.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, see Scripts .

Consejos de solución de problemas

Una herramienta puede funcionar bien en Studio, pero no en una experiencia en vivo de Roblox. Si esto ocurre, use los siguientes consejos para solucionar problemas:

  • LocalScripts y Scripts no pueden escuchar directamente el uno al otro, por lo que necesitas añadir un RemoteEvent para enviar mensajes entre los dos scripts.
  • Asegúrese de que cada Script y LocalScript solo se encarga de lo que se supone que debe hacer.

Para obtener más información sobre RemoteEvents, see Eventos y llamadas remotos .