主题
Axes
概览
| 字段 | 值 |
|---|---|
| Kind | Data · 数据 Data |
| Realm | common |
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 | 类型 | 默认值 | 说明 |
|---|---|---|---|
x | Bool | - | Axes 实例的 X 轴分量,布尔类型,用于表示该 Axes 在 X 轴方向上的状态。 |
y | Bool | - | Axes 实例的 Y 轴分量,布尔类型,用于表示该 Axes 在 Y 轴方向上的状态。 |
z | Bool | - | Axes 实例的 Z 轴分量,布尔类型,用于表示该 Axes 在 Z 轴方向上的状态。 |
Top | Bool | - | 由 Y 轴派生的顶面方向标记,布尔类型,表示该 Axes 实例在顶面方向上的状态。 |
Bottom | Bool | - | 由 Y 轴派生的底面方向标记,布尔类型,表示该 Axes 实例在底面方向上的状态。 |
Left | Bool | - | 由 X 轴派生的左面方向标记,布尔类型,表示该 Axes 实例在左面方向上的状态。 |
Right | Bool | - | 由 X 轴派生的右面方向标记,布尔类型,表示该 Axes 实例在右面方向上的状态。 |
Front | Bool | - | 由 Z 轴派生的前面方向标记,布尔类型,表示该 Axes 实例在前面方向上的状态。 |
Back | Bool | - | 由 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 轴方向无面启用)