簡體   English   中英

Humanoid:MoveTo() 不起作用 | 羅布樂思 LUA

[英]Humanoid:MoveTo() doesn't work | Roblox LUA

所以我正在嘗試制作一個移動到 map 中某個點的小機器人 這是我的代碼:

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)

當我啟動游戲時,虛擬人 model 根本不動(即使 WalkToPoint 已正確設置),然后幾秒鍾后控制台打印消息Reached Dest但人形機器人沒有移動。 我不知道為什么會這樣,你能幫幫我嗎? 太感謝了。

您可能需要考慮幾件事:首先,您需要確保人形生物所在的 model 中的所有部分都未錨定,否則它不會移動,即使它會觸發“MoveToFinished” “就像它為你所做的那樣。

第二個是目前 Roblox 似乎存在問題,因為在這種情況下使用您自己定義的 Vector3s 幾乎是不可能的,因為人形機器人不會移動到 position,而是大約 5-10 個螺柱。 我遇到了這個問題,就是我解決它的方法。 我希望這有幫助!

類人動物:移動到(測試點)

除了我在下面所說的之外,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)

在嘗試將實例屬性存儲在變量中之前,我遇到過問題。 你應該試試:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM