Empty
Empty
Empty
RunService 可以用於動畫。它還允許處理即時更新和逐幀控制。
事件 | 詳情 |
---|---|
Heartbeat | 每幀在物理模擬完成後觸發。 |
PostSimulation | 每幀在物理模擬完成後觸發。 |
PreAnimation | 每幀在物理模擬之前但在渲染之後觸發。 |
PreRender | 每幀在渲染之前觸發。 |
PreSimulation | 每幀在物理模擬之前觸發。 |
RenderStepped | 每幀在渲染之前觸發。 |
Stepped | 每幀在物理模擬之前觸發。 |
RunService 與 wait()
Empty
Empty
Empty
local part = Instance.new("Part")
part.Size = Vector3.new(4, 4, 4)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Parent = workspace
local speed = 5 -- studs per second
spawn(function()
while true do
wait(0.033) -- Approximate wait time for 30 FPS (Frame per second)
part.Position = part.Position + Vector3.new(speed * 0.033, 0, 0)
end
end)
wait() 的精確度較低,時間可能會有所波動,導致動畫不太流暢。
RunService 與 TweenService
Empty
Empty
Empty
- 適合平滑、可預測的動畫。
- 最佳用於簡單的屬性過渡。
- 內建的緩動樣式使用方便。
- TweenService 利用類似 RunService 的機制來確保動畫平滑,包括使用 delta time 進行屬性的幀獨立插值。
Empty
Empty
Empty
- 適合即時動態更新。
- 允許逐幀控制。
- 可用於動畫以外的各種任務。
- RenderStepped 與渲染過程相關聯,該過程在客戶端發生,因此僅限於 LocalScripts。
RunService 使用案例範例
範例 | 詳情 |
---|---|
Custom Render Logic | 3D GUIs: 創建並更新必須跟隨遊戲世界中的部件或角色的 3D GUI 元素。 |
Player-Exclusive Features | 本地遊戲機制:實現僅影響本地玩家的功能或機制,例如本地獨有的粒子效果或照明變化。 |
Camera Manipulation | 動態相機控制:根據玩家操作或遊戲事件平滑地更新相機的位置、方向或焦點,以創造更具沉浸感的體驗。 |