为啥我的动画在 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 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 FileProvider 在 android studio 中不起作用