【问题标题】: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 中,还是在其他地方?
  • 它在启动播放器脚本中

标签: animation lua roblox


【解决方案1】:

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

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

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

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

  1. 更改您的 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()

【讨论】:

  • 非常感谢,非常感谢您的帮助!
猜你喜欢
  • 2023-02-18
  • 1970-01-01
  • 2017-08-29
  • 2016-08-01
  • 2013-03-29
  • 2019-07-09
  • 2023-03-12
  • 2021-07-15
相关资源
最近更新 更多