【问题标题】:Humanoid:MoveTo() doesn't work | Roblox LUAHumanoid:MoveTo() 不起作用 | Roblox LUA
【发布时间】:2022-11-14 00:20:57
【问题描述】:

所以我正在尝试制作一个移动到地图上某个点的小机器人 这是我的代码:

local character = script.Parent
local humanoid = character.Humanoid
local testpoint = character.Parent.Points["End Part 2"].Position

humanoid:MoveTo(testpoint)
humanoid.MoveToFinished:Connect(function()
    print("Reached Dest")
end)

当我启动游戏时,虚拟模型根本不动(即使 WalkToPoint 已正确设置) 然后几秒钟后,消息Reached Dest 在控制台中打印,但人形机器人没有移动。 我不知道为什么会这样,请你帮帮我。 太感谢了。

【问题讨论】:

    标签: lua roblox


    【解决方案1】:

    在尝试将实例属性存储在变量中之前,我已经看到了一些问题。你应该试试:

    local character = script.Parent
    local humanoid = character.Humanoid
    local testpoint = character.Parent.Points["End Part 2"]
    
    humanoid:MoveTo(testpoint.Position)
    humanoid.MoveToFinished:Connect(function()
        print("Reached Dest")
    end)
    

    另外请确保您正确获取先前的变量,例如 characterhumanoid

    【讨论】:

      【解决方案2】:

      类人机器人:MoveTo(测试点)

      除了我在下面所说的之外,testpoint 没有设置为 Vector,这最终会弄乱东西。一个可能的解决方案可能是:

      humanoid:MoveTo(Vector3.new(testpoint))
      

      但是,您不需要使用 MoveTo,我认为您可以轻松地使用 .Position,如果您这样做:

      local character = script.Parent
      local Torso = -- Get Torso somehow depending on your game rig
      local pointToMove = character.Parent.Points["End Part 2"].Position
      Torso.Position = Vector3.new(pointToMove)
      

      【讨论】:

        【解决方案3】:

        您可能需要考虑以下几点: 首先,您需要确保人形机器人所在模型中的所有部分都未锚定,否则即使它会触发“MoveToFinished”,它也不会移动,就像它为您所做的那样。

        第二个是 Roblox 目前似乎存在问题,因为在这种情况下使用您自己定义的 Vector3s 几乎是不可能的,因为人形机器人不会移动到该位置,而是大约 5-10 个螺柱。我遇到了这个问题,this 是我解决它的方法。我希望这有帮助!

        【讨论】:

          猜你喜欢
          • 2021-07-24
          • 2021-04-17
          • 2020-11-21
          • 2020-08-14
          • 2020-06-23
          • 2019-03-05
          • 2023-02-02
          • 2021-04-14
          • 2012-10-27
          相关资源
          最近更新 更多