Kiểu giá trị
vec3
Véc-tơ 3D: một vị trí, kích thước, hướng, vận tốc. Đơn vị là unit của KHIM (nhân vật cao khoảng 5).
local v = vec3(1, 2, 3)
print(v.x, v.y, v.z)
print(v.magnitude) -- độ dài
print(v.unit) -- cùng hướng, độ dài 1
local sum = v + vec3(0, 1, 0)
local twice = v * 2
local dot = v:dot(vec3(1, 0, 0))
local cross = v:cross(vec3(0, 1, 0))
local halfway = v:lerp(vec3(10, 0, 0), 0.5)
local distance = (a.position - b.position).magnitudevec3(x, y, z) | Số thiếu là 0 |
vec3.zero, vec3.one, vec3.up | (0,0,0), (1,1,1), (0,1,0) |
x, y, z, magnitude, unit | Chỉ đọc |
dot(other), cross(other), lerp(goal, alpha) | |
+, -, *, /, dấu - đứng trước | Với một vec3 khác, hoặc một số cho * và / |
vec2
Tương tự ở 2D, cho anchor của UI, điểm trên màn hình và lặp texture: vec2(x, y), vec2.zero, vec2.one, x, y, magnitude, unit, + - * /.
Màu
local red = rgb(255, 0, 0) -- 0 tới 255
local orange = rgb("#ffaa00") -- mã hex
local blue = hsv(0.6, 0.8, 1) -- sắc độ, độ bão hoà, độ sáng, 0 tới 1
print(red.r, red.g, red.b) -- 0 tới 1
local pink = red:lerp(rgb(255, 255, 255), 0.5)transform
Một vị trí và một góc xoay - thứ gì đó ở đâu và quay về hướng nào.
local t = transform(0, 10, 0) -- tại (0, 10, 0), không xoay
local u = transform(vec3(0, 10, 0))
local look = transform.lookAt(vec3(0, 5, 10), vec3(0, 0, 0)) -- ở điểm đầu, nhìn về điểm sau
local turned = transform.angles(0, math.rad(90), 0) -- xoay một phần tư vòng quanh Y (radian)
local both = t * turned -- dời, rồi xoay
print(look.position, look.forward, look.right, look.up)transform.identity | Ở gốc toạ độ, không xoay |
position, forward, right, up | Các vec3 |
inverse() | Phép biến đổi ngược lại |
lerp(goal, alpha) | Ở giữa hai cái, mượt mà |
toWorld(other), toLocal(other) | Đổi một transform khác từ không gian của cái này sang của world, và ngược lại |
pointToWorld(point), pointToLocal(point) | Tương tự cho một điểm |
t * other | Lần lượt từng cái; t * vec3 là một điểm được dời bởi t |
t + vec3, t - vec3 | Dời, không xoay |
transform của part là vị trí và góc xoay của nó: part.transform = transform.lookAt(part.position, target.position) quay nó về phía mục tiêu.
dim
Vị trí hay kích thước UI: một scale (tỉ lệ so với cha) và một offset (điểm UI), cho X và Y.
dim(0.5, 0, 0, 40) -- rộng nửa cha, cao 40 điểm
dim.scale(1, 0.5) -- rộng bằng cha, cao nửa cha
dim.px(200, 50) -- 200 x 50 điểm
local d = dim(0.5, 10, 0, 0)
print(d.x.scale, d.x.offset, d.y.scale, d.y.offset)Event và connection
Event là một việc xảy ra; connect một hàm vào nó:
event:connect(fn) | fn mỗi lần; trả về một connection |
event:once(fn) | fn chỉ lần đầu |
event:wait() | Chờ lần tới và trả về giá trị đi kèm |
connection:disconnect() | Thôi |
connection.connected | Còn nối hay không |
Tuỳ chọn tween
object:tween(goals, time) hoặc object:tween(goals, options):
| Tuỳ chọn | |
|---|---|
time | Số giây |
style | "Linear", "Sine", "Quad", "Cubic", "Quart", "Back", "Bounce", "Elastic" |
direction | "In", "Out", "InOut" |
repeats | Lặp thêm bao nhiêu lần; -1 là mãi mãi |
reverses | Mỗi lần đi rồi lại về |
delay | Số giây trước khi bắt đầu |
Nó trả về một tween có completed (một event) và cancel().
Kết quả raycast
world:raycast(origin, direction) trả nil hoặc một bảng: part, position, normal, distance.
Chuỗi cho các lựa chọn
| Thuộc tính | Giá trị |
|---|---|
part.shape | "Block", "Ball", "Cylinder", "Wedge" |
part.material | "Plastic", "Smooth", "Neon", "Glass", "Metal", "Wood", "Grass", "Brick", "Concrete", "Sand", "Rock", "Water", "Leaves", "Marble", "Granite", "Slate", "Cobblestone", "Pebble", "WoodPlanks", "DiamondPlate", "CorrodedMetal", "Foil", "Fabric", "Ice", "Snow", "Sandstone", "Mud", "Ground", "Asphalt", "CrackedLava", "CeramicTiles", "Pavement", "RoofShingles", "ForceField" |
| Một mặt | "Front" (-Z), "Back", "Left", "Right", "Top", "Bottom" |
label.textAlign | "Left", "Center", "Right" |
label.font | "Default", "Bold", "Display" |
camera.mode | "Follow", "Fixed", "FirstPerson" |
body.state | "Idle", "Walking", "Jumping", "Falling", "Climbing", "Sitting", "Dead" |
| Phím | "A"-"Z", "Zero"-"Nine", "Space", "Return", "Tab", "Backspace", "Escape", "LeftShift", "RightShift", "LeftControl", "RightControl", "LeftAlt", "RightAlt", "Up", "Down", "Left", "Right" |
net và data chở được gì
net | data | |
|---|---|---|
nil, boolean, số, chuỗi | Có | Có |
vec3, vec2, màu, transform | Có | Có |
| Part và người chơi | Có | Không |
| Bảng chứa những thứ trên | Có | Có |
| Kích thước | 16 KB | 16 KB |