Skip to content

Axes ​

概览 ​

字段值
KindData · 数据 Data
Realmcommon

Axes 是由名称字符串构造的轴/面布尔集合,可读取 x、y、z 与 Top、Bottom、Left、Right、Front、Back 是否启用。

适用场景 ​

用于组合和读取 X、Y、Z 轴标记及其派生面标记;传给其他接口前应核对该接口的参数类型。

使用要点 ​

通过 Axes.New("X", "Y") 或 Axes("X", "Y") 创建轴集合,再读取 x/y/z 和派生面属性。轴名称字符串与 AxisType 枚举是不同的参数类型。

注意事项 ​

可用 Axes.New(...) 或等价简写 Axes(...) 构造,参数为需要启用的轴名称字符串 X、Y、Z。Left/Right 由 X 派生,Top/Bottom 由 Y 派生,Front/Back 由 Z 派生;派生面属性用于读取,不作为构造参数。

代码示例 ​

构造 Axes 轴集合并读取轴与派生面属性 ​

lua
-- @runtime client
-- Axes 是轴集合数据:构造时用字符串声明参与运算的轴(X / Y / Z),构造完成后轴与派生面属性均为只读
local axes = Axes.New("X", "Y", "Z")  -- 全轴集合:一次声明三条轴
local singleAxis = Axes("X")          -- 等价的简写构造:只声明 X 轴,用于和全轴集合做结果对比

-- 读取全轴集合的每条轴;轴属性在构造时声明后才会生效,这里逐条取出便于核对构造参数
local axisX = axes.x
local axisY = axes.y
local axisZ = axes.z
print("全轴集合 => x:", tostring(axisX), "y:", tostring(axisY), "z:", tostring(axisZ))

-- 对比两次构造的结果:单轴实例只声明了 X 轴,因此只读取它的 x
local singleX = singleAxis.x
print("单轴集合 => x:", tostring(singleX))

-- 派生面属性同样只读,用来查询各朝向面(Top / Bottom / Left / Right / Front / Back)
local topFace = axes.Top
local bottomFace = axes.Bottom
local frontFace = axes.Front
print("派生面 => Top:", tostring(topFace), "Bottom:", tostring(bottomFace), "Front:", tostring(frontFace))

属性 (9) ​

Name类型默认值说明
xBool-Axes 实例的 X 轴分量,布尔类型,用于表示该 Axes 在 X 轴方向上的状态。
yBool-Axes 实例的 Y 轴分量,布尔类型,用于表示该 Axes 在 Y 轴方向上的状态。
zBool-Axes 实例的 Z 轴分量,布尔类型,用于表示该 Axes 在 Z 轴方向上的状态。
TopBool-由 Y 轴派生的顶面方向标记,布尔类型,表示该 Axes 实例在顶面方向上的状态。
BottomBool-由 Y 轴派生的底面方向标记,布尔类型,表示该 Axes 实例在底面方向上的状态。
LeftBool-由 X 轴派生的左面方向标记,布尔类型,表示该 Axes 实例在左面方向上的状态。
RightBool-由 X 轴派生的右面方向标记,布尔类型,表示该 Axes 实例在右面方向上的状态。
FrontBool-由 Z 轴派生的前面方向标记,布尔类型,表示该 Axes 实例在前面方向上的状态。
BackBool-由 Z 轴派生的后面方向标记,布尔类型,表示该 Axes 实例在后面方向上的状态。

函数 (1) ​

New ​

签名:New(...: String) -> Axes

创建一个新的 Axes 对象,通过传入轴名称字符串来指定哪些轴被选中。

参数类型说明
...String轴名称(可变参数)

返回值 Axes

示例代码

构造 Axes 并读取各轴布尔值

lua
-- @runtime client
-- 通过 Axes.New 创建实例,传入需要启用的轴名称
local axes = Axes.New("X", "Y")

-- 派生面:返回 true/false(Bool 类型)
print("Left:", axes.Left)     -- true
print("Right:", axes.Right)   -- true
print("Top:", axes.Top)       -- true
print("Bottom:", axes.Bottom) -- true(由 Y 轴派生)

-- 构造时启用了 X/Y,未启用 Z;派生面与对应轴保持一致
print("x:", axes.x)           -- true(X 轴方向有面启用)
print("y:", axes.y)           -- true(Y 轴方向有面启用)
print("z:", axes.z)           -- false(Z 轴方向无面启用)