为啥我收到这个错误,当角色完全加载时?

Posted

技术标签:

【中文标题】为啥我收到这个错误,当角色完全加载时?【英文标题】:Why am I getting this error, when character is fully loaded?为什么我收到这个错误,当角色完全加载时? 【发布时间】:2020-05-16 13:16:21 【问题描述】:

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

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

我知道角色已经满载,所以我不明白。如果动画本身有问题,我会收到此错误吗?我还错过了什么?

谢谢

【问题讨论】:

错误是否给你一个行号,因为我在这里看起来一切都很好 【参考方案1】:
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 = hum.LoadAnimation(<a humanoid object needs to go here>, <animation>)

但是由于您正在传递 Humanoid 应该去的动画,它试图在动画对象上找到 LoadAnimation 函数并且失败了。

【讨论】:

以上是关于为啥我收到这个错误,当角色完全加载时?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在运行 Locust 时收到 403 错误?

为啥我收到“不包含采用 0 个参数的构造函数”错误? C#

为啥我在页面刷新时收到网络错误? (获取请求)

我在解析 JSON 时遇到错误。为啥我会收到这个错误?

为啥我在 iOS 上从 Swift 调用服务时收到 SSL 错误?

当文件中明确指定 executionRoleArn 时,为啥我会收到关于未指定的错误?