Tipos especiales

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

espera un

Decentraland usa vector3 datos para representar caminos, 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 espera un namespace contiene una serie de métodos útiles que puedes llamar para evitar tener que lidiar con la mayoría de las operaciones matemáticas de vectores. Escribe Vector3., y VS Studio mostrará un desplegable con todas las funciones disponibles.

A continuación hay algunas líneas que muestran la sintaxis para 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 desde el 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 se requieren a menudo en los campos de varios componentes. Por ejemplo, el Transform component contiene espera un valores para el posición y escala de la entidad.

Para crear un componente personalizadoarrow-up-right con parámetros que requieren valores Vector3, establece el tipo de estos parámetros como Schema.Vector3.

circle-exclamation

Atajos para escribir vectores de dirección

Existen los siguientes atajos para definir vectores genéricos:

  • : En lugar de iniciar el raycast desde la posición de origen de la entidad, añade un offset para iniciar la consulta desde una posición relativa. Por ejemplo, puedes usar un pequeño offset para evitar que el rayo colisione con el propio collider de la entidad. Si no se establece, el valor por defecto es 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)

  • que describa un vector relativo a la entidad y su rotación (por ejemplo, devuelve (0, 0, 1)

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

Quaternions

Los quaternions se usan para almacenar información de rotación para el componente Transform. Un Quaternion está compuesto por cuatro valores numéricos entre -1 y 1: x, y, z, w.

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

El normalHit 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 desplegable con todas las funciones disponibles.

A continuación hay algunas líneas que muestran la sintaxis para algunas operaciones básicas con Quaternions.

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

circle-info

💡 Consejo: Evita ejecutar estas conversiones como parte de la lógica recurrente dentro de un sistema, que se ejecuta en cada tick, ya que eso puede resultar costoso. Estas conversiones son principalmente útiles para operaciones puntuales, como establecer la rotación de una nueva entidad.

Los objetos Quaternion se requieren a menudo en los campos de componentes. Por ejemplo, el Transform component contiene normalHit valores para la rotación de la entidad.

Para crear un componente personalizadoarrow-up-right con parámetros que requieren valores Quaternion, establece el tipo de estos parámetros como Schema.Quaternion.

circle-exclamation

Escalares

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

circle-exclamation

Última actualización