我正在尝试第一次将动画插入代码中。这是我的代码:
1 local player = game.Players.LocalPlayer
2 local char = player.Character or player.CharacterAdded:Wait()
3 local hum = char:WaitForChild("Humanoid")
4
5 local animaInstance = Instance.new("Animation")
6 animaInstance.AnimationId = "rbxassetid://4641537766"
7
8 local fireBallAnim = hum.LoadAnimation(animaInstance)
9 fireBallAnim:Play()
我收到错误
The function LoadAnimation is not a member of Animation
我知道角色已满载,所以我不明白。如果动画本身有问题,是否会出现此错误?我还有什么错过的地方?
谢谢
对于这么小的错误,这是一个非常令人困惑的信息。这里唯一的错误是,您使用.
而不是:
调用了对象函数。
local fireBallAnim = hum:LoadAnimation(animaInstance)
当您在带有冒号的对象上调用函数时,它会自动将对象插入为第一个参数。可以从表中看到一个有趣的例子:
-- insert an object into the table 't'
local t = {}
table.insert(t, 1)
-- can also be written as...
t.insert(t, 1)
-- which is the same as...
t:insert(1)
所有这些调用都执行相同的操作。用:
调用该函数是将t
对象作为第一个参数的语法糖。因此,在您的代码中,正在发生的事情是您像这样调用LoadAnimation:
local fireBallAnim = Humanoid.LoadAnimation(<a humanoid object needs to go here>, <animation>)
但是由于您要传递拟人型机器人所应到达的动画,因此它试图在动画对象上找到LoadAnimation函数并失败。