Administrador de componentes

Componentes

En Craftland Studio PC, un «componente» puede entenderse como un contenedor de datos.
Una entidad en sí misma es simplemente un identificador vacío; lo que puede hacer y cómo se comporta depende totalmente de los componentes que se le adjunten.

  • Componente de movimiento: almacena solo datos relacionados con el movimiento, como la velocidad y la dirección del movimiento.
  • Componente de renderizado: almacena los datos necesarios para el renderizado, como modelos y materiales.
  • Componente de colisión: almacena datos para la detección de colisiones, como volúmenes y formas de colisión.

El sistema localiza las entidades que poseen combinaciones específicas de componentes y, a continuación, determina la lógica de comportamiento que se aplicará a estas entidades en función de los datos contenidos en dichos componentes.

Gestión de componentes

Acceda a la gestión de componentes a través del menú

image-20251125174607079

image-20251125174656617

También puede acceder a la interfaz de gestión de un componente directamente desde el propio componente:

image-20251125174644533

image-20251125174720819

Scripts

Montar scripts en un componente equivale a montar scripts en todas las entidades que utilizan ese componente:

image-20251125175304300

image-20251125175249160

image-20251125175923212

Atributos

Atributos predeterminados

De forma predeterminada, la mayoría de los componentes ya poseen propiedades predeterminadas.

image-20251201112745685

Tipos de propiedades

Las propiedades se clasifican como de solo lectura o modificables. Las propiedades de solo lectura solo se pueden consultar para conocer sus valores y no se pueden modificar mediante scripts; las propiedades modificables se pueden alterar mediante scripts.

image-20251201112959371

Propiedades modificables

image-20251201113027758

Propiedades de solo lectura

La capacidad de escritura de un atributo también se puede determinar por si su entrada de propiedad predeterminada está resaltada.

image-20251201113138046

Por ejemplo, la propiedad position del objeto player difiere de la propiedad position del componente transform utilizado por otros objetos; no se puede modificar directamente a través de la API setProperty. Para mover el reproductor, se debe utilizar la API teleportPlayer dedicada:

image-20251201113836975

image-20251201113913733

Utilice la API Set Property para modificar los atributos modificables; utilice la API Get Property para recuperar los valores de las propiedades:

image-20251201120211092

Además, ciertas propiedades predeterminadas son exclusivas del servidor; intentar modificarlas en el cliente dará lugar a un error. En los scripts de componentes, estas propiedades se filtran automáticamente en función de la plataforma de ejecución del script.

Propiedades personalizadas

Además de las propiedades predeterminadas disponibles, también puede añadir propiedades personalizadas a los componentes. Las propiedades personalizadas son modificables y funcionan como propiedades de doble extremo.

image-20251201141535496

Detección de propiedades personalizadas

Es posible que haya observado un icono de supervisión junto a las propiedades personalizadas:

image-20251201151540296

Al habilitar esta función de supervisión, el sistema envía un evento de «cambio de propiedad personalizada» cada vez que se modifica el valor de la propiedad, siguiendo esta lógica:

  1. Cuando la propiedad se modifica mediante la lógica del lado del servidor, el evento se envía tanto al servidor como al cliente.
  2. Cuando la propiedad se modifica mediante la lógica del lado del cliente, el evento solo se envía localmente.

Este evento de cambio de propiedad personalizada le permite detectar modificaciones más fácilmente, lo que permite realizar ajustes lógicos posteriores:

image-20251201152041181

Si varios atributos personalizados tienen habilitada la detección de cambios, el elemento ID del atributo personalizado puede identificar qué atributo específico ha cambiado:

image-20251201155511248

Al utilizar el primitivo de ID de propiedad personalizada, se debe especificar manualmente el tipo de componente.

Componentes asociados

Un componente puede tener varios componentes asociados. La combinación, las referencias o las dependencias entre componentes definen los límites lógicos y de capacidad de datos de una entidad.

Por ejemplo, el componente Jugador se vincula a los componentes Combatible, Puntuable y otros. Las entidades Jugador que utilizan el componente Jugador también pueden acceder a los datos y eventos de Combatible y Puntuable.

image-20251201173940400