报名参加即将到来的黑客马拉松大赛!奖金为总额超过 25 万美元的 MANA 和 LAND 。
X
你好,请选择
语言:
关闭

特殊类型

向量

Decentraland 使用向量来表示路径、空间中的点和方向。向量也可以用来定义旋转方向,作为 quaternions 的更友好的替代。Vector2, Vector3Vector4 分别定义为不同的类,包含不同数量的维度。

向量对象包含一系列方便的方法,您可以调用这些方法来避免处理大多数向量数学计算。

下面几行代码展示了一些基本的向量操作语法。

// Instance a vector object
let myVector = new Vector3(3, 1, 5)

// Edit one of its values
myVector.x = 5

// Call functions from the vector instance
let normalizedVector = myVector.normalize()

// Call functions from the vector class
let distance = Vector3.Distance(myVector1, myVector2)

let midPoint = Vector3.lerp(myVector1, myVector2, 0.5)

三维矢量也包含在几个组件中。例如,Transform组件包含实体的 positionscaleVector3 值。

方向向量的快捷方式

方向向量可以使用以下快捷方式:

  • Vector3.Zero() returns (0, 0, 0)
  • Vector3.Up() returns (0, 1, 0)
  • Vector3.Down() returns (0, -1, 0)
  • Vector3.Left() returns (-1, 0, 0)
  • Vector3.Right() returns (1, 0, 0)
  • Vector3.Forward() returns (0, 0, 1)
  • Vector3.Backward() returns (0, 0, -1)

标量

标量只不过是一个数。因此,实例化一个 Scalar 对象来存储数据没有多大意义。但是,Scalar 类中公开了几个方便的函数(类似于_Vector_ 类中的函数),这些函数可用于数字。


// Call functions from the Scalar class
let random = Scalar.RandomRange(1, 100)

let midPoint = Scalar.lerp(number1, number2, 0.5)

let clampedValue = Scalar.Clamp(myInput, 0, 100)

四元数

四元数用于存储转换组件的旋转信息。四元数由 -1 到 1 之间的四个数字组成: x, y, z, w。

// Instance a quaternion object
let myQuaternion = new Quaternion(0, 0, 0, 1)

// Edit one of its values
myQuaternion.x = 1

// Call functions from the quaternion instance
let quaternionAsArray = myQuaternion.asArray()

// Call functions from the quaternion class
let quaternionFromEuler = Quaternion.FromEulerAnglesRef(90, 0, 0)

let midPoint = Quaternion.Slerp(myQuaternion1, myQuaternion2, 0.5)