为啥我的动画在 Roblox Studio 中不起作用

Posted

技术标签:

【中文标题】为啥我的动画在 Roblox Studio 中不起作用【英文标题】:Why is my Animation Not Working in Roblox Studio为什么我的动画在 Roblox Studio 中不起作用 【发布时间】:2021-11-24 08:53:56 【问题描述】:

所以我按照这个 DevKing 教程制作了一个动画,但由于某种原因我无法让它工作,因为我收到了这个错误:attempt to index nil with 'Humanoid'

这是我的代码:

local player = game.Players.LocalPlayer
local char = player.Character
local Hum = char.Humanoid
local ArmAnim = script.ArmAnim
local ArmTrack = Hum:LoadAnimation(ArmAnim)
ArmTrack:Play()

我已经尝试重新阅读我的所有代码并回顾视频,但我似乎无法让它工作。

【问题讨论】:

SifflePiffle,这个 LocalScript 在哪里?它是在工具中,还是在 StarterPlayerScripts 中,还是在其他地方? 它在启动播放器脚本中 【参考方案1】:

您的代码应该可以正常工作,但是您的代码中存在时间问题。根据问题中的 cmets,由于此 LocalScript 位于 StarterPlayerScripts 中,因此该脚本将在玩家加入后立即触发。但是,当玩家第一次加入服务器时,他们的角色不会立即生成到世界中。所以有一个很短的时间段player.Character 为零。

所以要解决这个问题,你需要等到角色加载到世界中。

您可以通过几种不同的方式做到这一点。

    将此 LocalScript 移动到 StarterCharacterScripts。 这将在角色加载到世界后触发脚本时更改。

    更改您的 LocalScript 以等待 Humanoid 存在。
local player = game.Players.LocalPlayer
local char = player.Character

-- if the player hasn't loaded yet, wait for the character to spawn into the world
if char == nil then
    player.CharacterAdded:Wait()
    char = player.Character
end

local hum = char.Humanoid
local ArmAnim = script.ArmAnim
local ArmTrack = hum:LoadAnimation(ArmAnim)
ArmTrack:Play()

【讨论】:

非常感谢,非常感谢您的帮助!

以上是关于为啥我的动画在 Roblox Studio 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的链接颜色关键帧动画在 Chrome 中不起作用?

为啥我的 FileProvider 在 android studio 中不起作用

为啥我的roblox gui在studio的测试区显示而在游戏中却没有

为啥进入动画在新线程中不起作用?

为啥动画内容在 Firefox 中不起作用?

为啥这个 CSS3 动画在 Safari 和 Chrome 中不起作用?