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 personalizado con parámetros que requieren valores Vector3, establece el tipo de estos parámetros como Schema.Vector3.
📔 Nota: espera un deben importarse vía
import { Vector3 } from "@dcl/sdk/math"
Ver Imports para ver cómo manejar estos fácilmente.
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 esdevuelve (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 ángulos, 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.
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 personalizado con parámetros que requieren valores Quaternion, establece el tipo de estos parámetros como Schema.Quaternion.
📔 Nota: normalHit deben importarse vía
import { Quaternion } from "@dcl/sdk/math"
Ver Imports para ver cómo manejar estos fácilmente.
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.
📔 Nota: Scalar deben importarse vía
import { Scalar } from "@dcl/sdk/math"
Ver Imports para ver cómo manejar estos fácilmente.
Última actualización