主题
Animator
动画控制器负责为角色单位加载动画资源、创建 AnimationTrack,并查询当前正在播放的动画轨道。
概览
动画控制器负责为角色单位加载动画资源、创建 AnimationTrack,并查询当前正在播放的动画轨道。
继承自
Unit;可通过World:CreateUnit("Animator", ...)创建;返回单个单位
函数
LoadAnimation
签名:LoadAnimation(contentId: String|Animation) -> AnimationTrack
加载动画轨道并返回可播放的 AnimationTrack;同一个 contentId 多次调用会返回缓存的同一个 AnimationTrack 实例。
| 参数 | 类型 | 说明 |
|---|---|---|
contentId | `String | Animation` |
返回值 AnimationTrack
加载动画资源并播放
lua
-- @runtime server
local World = game:GetService("World")
local human = World:CreateUnit("HumanUnit", { Position = Vector3.New(0, 0, 0) })
local animator = human.Animator
if animator == nil then return end
-- animationId 必须用 official://animation/{id} 格式
local track = animator:LoadAnimation("official://animation/100001")
track:Play()GetPlayingAnimationTracks
签名:GetPlayingAnimationTracks() -> AnimationTrack[]
获取当前所有正在播放的动画轨道,返回由 AnimationTrack 组成的数组。
返回值 AnimationTrack[]
读取角色当前播放的动画轨道
lua
-- @runtime server
local World = game:GetService("World")
local human = World:CreateUnit("HumanUnit", { Position = Vector3.New(0, 0, 0) })
local animator = human.Animator
if animator == nil then return end
local track = animator:LoadAnimation("official://animation/100001")
track:Play()
for _, playingTrack in ipairs(animator:GetPlayingAnimationTracks()) do
print("正在播放:", playingTrack.Animation.Name)
end属性
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Parent | Unit | - | Parent 是 Animator 的父 Unit 属性,用于表示该动画器所驱动的 Unit(即拥有骨骼、动画组件等动画资源的宿主 Unit)。该属性返回 Unit 类型实例,并且可读写:读取时得到当前关联的父 Unit,写入时可将其指向目标 Unit。 |
事件
AnimationPlayed
签名:AnimationPlayed(animationTrack: AnimationTrack)
| 参数 | 类型 | 说明 |
|---|---|---|
animationTrack | AnimationTrack | 开始播放的动画轨道 |
