为什么我的 Roblox Studio 动画不能工作

我遵循了这位 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()

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

原文链接 https://stackoverflow.com/questions/69427378

点赞
stackoverflow用户2860267
stackoverflow用户2860267

你的代码应该可以正常运行,但是你的代码存在时间问题。根据问题中的评论,由于这个 LocalScript 位于 StarterPlayerScripts,所以这个脚本将在玩家加入游戏时立即触发。但是,当玩家第一次加入服务器时,他们的角色不会立即生成在世界中。因此,在 player.Character 变量的值为 nil 的短暂时间期间,你不能对角色进行操作。

因此,为了解决这个问题,你需要等待玩家角色生成在世界中后再进行操作。

你可以使用以下几种方法来解决这个问题:

  1. 将这个 LocalScript 移动到 StarterCharacterScripts 中。 这将更改脚本的触发时间,使其在角色生成在世界中后触发。

或者

  1. 修改你的 LocalScript 以等待角色的生成。
local player = game.Players.LocalPlayer
local char = player.Character

-- 如果玩家角色还未加载,则等待其生成
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()
2021-10-03 19:07:06