为什么当角色完全加载时,我会出现这个错误?

我正在尝试第一次将动画插入到我的代码中。这是我的代码:

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

我知道角色已经完全加载,所以我不明白。如果动画本身有问题,我会因此获得这个错误吗?我还错过了什么?

谢谢

点赞
用户2860267
用户2860267
本错误消息非常令人困惑。问题是您使用了`.`而非`:`调用成员函数。将其改为冒号将解决您的错误。

---

当您使用冒号在对象上调用函数时,它会自动将该对象作为第一个参数插入。可以通过表格看到一个有趣的例子:

-- 在表“t”中插入一个对象 local t = {} table.insert(t, 1) -- 也可以写成…… t.insert(t, 1) -- 即相同的…… t:insert(1)


所有这些都做相同的事情。使用冒号调用函数是语法糖,为第一个参数放置`t`对象。所以,在您的代码中,正在以以下方式调用`LoadAnimation`:

local fireBallAnim = hum.LoadAnimation(<需要一个 humanoid 对象>, <动画>)

```

但是,由于您正在将 Humanoid 放在动画应在的位置,因此它正在尝试在动画对象上查找 LoadAnimation 函数并失败。

2020-01-31 22:32:53