Skip to content

Animator ​

动画控制器负责为角色单位加载动画资源、创建 AnimationTrack,并查询当前正在播放的动画轨道。

概览 ​

动画控制器负责为角色单位加载动画资源、创建 AnimationTrack,并查询当前正在播放的动画轨道。

继承自 Unit;可通过 World:CreateUnit("Animator", ...) 创建;返回单个单位

函数 ​

LoadAnimation ​

签名:LoadAnimation(contentId: String|Animation) -> AnimationTrack

加载动画轨道并返回可播放的 AnimationTrack;同一个 contentId 多次调用会返回缓存的同一个 AnimationTrack 实例。

参数类型说明
contentId`StringAnimation`

返回值 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

属性 ​

名称类型默认值说明
ParentUnit-Parent 是 Animator 的父 Unit 属性,用于表示该动画器所驱动的 Unit(即拥有骨骼、动画组件等动画资源的宿主 Unit)。该属性返回 Unit 类型实例,并且可读写:读取时得到当前关联的父 Unit,写入时可将其指向目标 Unit。

事件 ​

AnimationPlayed ​

签名:AnimationPlayed(animationTrack: AnimationTrack)

参数类型说明
animationTrackAnimationTrack开始播放的动画轨道