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.
📔 Nota: Vector3 deben importarse mediante
import { Vector3 } from "@dcl/sdk/math"
Consulta Imports para saber cómo manejarlos fácilmente.
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.
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.
📔 Nota: Quaternion deben importarse mediante
import { Quaternion } from "@dcl/sdk/math"
Consulta Imports para saber cómo manejarlos fácilmente.
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.
📔 Nota: Scalar deben importarse mediante
import { Scalar } from "@dcl/sdk/math"
Consulta Imports para saber cómo manejarlos fácilmente.
Última actualización