鼠标点击时门模型无法旋转:Roblox Lua脚本语法错误排查求助
修复Roblox Lua门旋转脚本的语法与逻辑问题
首先看你遇到的语法错误,其实是括号不匹配导致的解析失败:
- 第5行中
CFrame.fromEulerAngles(0,math.rad(90), 0)后面缺少了一个闭合的),导致handle:SetPrimaryPartCFrame()这个函数调用没有正确结束,解析器读到end时就会报错。 - 因为第一个括号没闭合,整个
MouseClick:Connect()的回调函数也没法正确闭合,所以会提示找不到对应的end。
另外还有个逻辑问题:你现在修改的是门把手(handle)的CFrame,但实际要旋转的是门模型(door),这会导致即使语法正确,门也不会动。
修正后的完整代码
local handle = script.Parent.Door.Handle local door = script.Parent.Door.Model handle.ClickDetector.MouseClick:Connect(function() -- 修改门模型的CFrame,而不是门把手 door:SetPrimaryPartCFrame(door:GetPrimaryPartCFrame() * CFrame.fromEulerAngles(0, math.rad(90), 0)) end)
关键修正点说明
- 补全缺失的括号:在
CFrame.fromEulerAngles(0, math.rad(90), 0)后面添加了),让SetPrimaryPartCFrame的调用语句完整闭合。 - 修正操作对象:把
handle替换为door,确保我们旋转的是门模型本身,而不是仅仅转动门把手。 - 格式优化:添加了适当的空格和换行,让代码可读性更强,也更容易避免类似的语法疏漏。
现在你可以把这段代码替换原来的脚本,点击门把手后门模型应该就能正常旋转90度了。
内容的提问来源于stack exchange,提问作者Flywheel




