For the complete documentation index, see llms.txt. This page is also available as Markdown.

Tipos especiales

Aprende qué tipos especiales existen, incluidos Vector, Quaternions y más.

Vector3

Decentraland usa Vector3 datos para representar rutas, puntos en el espacio y direcciones. Los vectores también pueden usarse para definir orientaciones de rotación, como una alternativa más amigable a Quaternions. Un objeto Vector3 contiene valores numéricos para cada uno de los x, y, y z eje.

const myVector: Vector3 = { x: 8, y: 1, z: 8 }

El Vector3 El namespace contiene una serie de métodos útiles que puedes llamar para evitar tener que ocuparte de la mayoría de las operaciones matemáticas con vectores. Escribe Vector3., y VS Studio mostrará un Dropdown con todas las funciones disponibles.

A continuación, se muestran algunas líneas con la sintaxis de algunas operaciones básicas con vectores.

// Crear un objeto vector
let myVector = Vector3.create(3, 1, 5)

// Sintaxis alternativa para crear un objeto vector
let myOtherVector: Vector3 = { x: 8, y: 1, z: 8 }

// Editar uno de sus valores
myVector.x = 5

// Llamar funciones del namespace Vector3,
// Todas estas funciones requieren pasar objetos Vector3 en sus parámetros

let normalizedVector = Vector3.normalize(myVector)

let distance = Vector3.distance(myVector, myOtherVector)

let midPoint = Vector3.lerp(myVector, myOtherVector, 0.5)

Los objetos Vector3 suelen requerirse en los campos de varios Components. Por ejemplo, el Transform Component contiene Vector3 valores para el posición y escala de la Entity.

Para crear un componente personalizado con parámetros que requieren valores Vector3, establece el tipo de estos parámetros como Schemas.Vector3.

Atajos para escribir vectores de dirección

Los siguientes atajos existen para definir vectores genéricos:

  • Vector3.Zero() devuelve (0, 0, 0)

  • Vector3.Up() devuelve (0, 1, 0)

  • Vector3.Down() devuelve (0, -1, 0)

  • Vector3.Left() devuelve (-1, 0, 0)

  • Vector3.Right() devuelve (1, 0, 0)

  • Vector3.Forward() devuelve (0, 0, 1)

  • Vector3.Backward() devuelve (0, 0, -1)

Quaternions

Los Quaternions se utilizan para almacenar información de rotación para el componente Transform. Un Quaternion se compone de cuatro valores numéricos entre -1 y 1: x, y, z, w.

Los Quaternions son diferentes de Euler ángulos, la notación más común con números que van de 0 a 360 con la que la mayoría de las personas está familiarizada. Para usar ángulos de Euler, usa una de las siguientes notaciones: x, y y z la notación con números que van de 0 a 360 con la que la mayoría de las personas está familiarizada. El engine expresa todas las rotaciones como Quaternions, así que tiene sentido evitar cálculos para convertir hacia y desde Euler siempre que sea posible.

El Quaternion El namespace contiene una serie de métodos útiles que puedes llamar para evitar tener que lidiar con muchas operaciones matemáticas. Escribe Quaternion., y VS Studio mostrará un Dropdown con todas las funciones disponibles.

A continuación, se muestran algunas líneas con la sintaxis de algunas operaciones básicas con Quaternions.

Como es mucho más fácil pensar en términos de grados Euler, el SDK incluye un par de funciones para convertir hacia y desde Quaternions y Euler.

💡 Consejo: Evita ejecutar estas conversiones como parte de la lógica recurrente dentro de un System, que se ejecuta en cada tick, ya que eso puede ser costoso. Estas conversiones son sobre todo útiles para operaciones de una sola vez, como establecer la rotación de una nueva Entity.

Los objetos Quaternion suelen requerirse en los campos de Components. Por ejemplo, el Transform Component contiene Quaternion valores de rotación de la Entity.

Para crear un componente personalizado con parámetros que requieren valores Quaternion, establece el tipo de estos parámetros como Schemas.Quaternion.

Escalares

Un escalar no es más que un número. Por esa razón, no tiene mucho sentido instanciar un Scalar objeto para almacenar datos, ya que puedes hacer lo mismo con un número. Las funciones del Scalar namespace, sin embargo, exponen varias funciones útiles (similares a las del Vector3 namespace), que pueden usarse con números.

Última actualización