Roblox Studio报错:Entrance不是Model "LongRoomRoof"的有效成员求解决
问题描述
运行Roblox房间生成代码时触发错误,错误信息如下:
Entrance is not a valid member of Model "LongRoomRoof" - Server - Room:9
涉及代码如下:
ModuleScript 代码
local Room = {} Room.random = Random.new() function Room.generate(prevRoom) local possibleRooms = workspace.Rooms:GetChildren() local randomRoom = possibleRooms[Room.random:NextInteger(1, #possibleRooms)] local newRoom = randomRoom:Clone() newRoom.PrimaryPart = newRoom.Entrance newRoom:PivotTo(prevRoom.Exit.CFrame) newRoom.Entrance.Transparency = 1 newRoom.Exit.Transparency = 1 newRoom.Parent = workspace.GeneratedRooms return newRoom end return Room
ServerScript 代码
local room = require(script.Room) local prevRoom = workspace.StartRoom for i = 1, 10 do prevRoom = room.generate(prevRoom) end
解决方法
- 检查模型完整性:确认
workspace.Rooms下所有模型(包括LongRoomRoof)都包含Entrance和Exit部件。若模型缺少这两个部件,要么补全部件,要么将该模型移出Rooms目录。 - 添加有效房间过滤:在ModuleScript中加入逻辑,只筛选包含
Entrance和Exit的模型作为候选,避免随机到无效模型。修改后的代码如下:
function Room.generate(prevRoom) -- 过滤出包含必要部件的有效房间 local possibleRooms = {} for _, model in ipairs(workspace.Rooms:GetChildren()) do if model:FindFirstChild("Entrance") and model:FindFirstChild("Exit") then table.insert(possibleRooms, model) end end -- 避免无有效房间时触发索引错误 if #possibleRooms == 0 then warn("没有可用的有效房间模型!") return nil end local randomRoom = possibleRooms[Room.random:NextInteger(1, #possibleRooms)] local newRoom = randomRoom:Clone() newRoom.PrimaryPart = newRoom.Entrance newRoom:PivotTo(prevRoom.Exit.CFrame) newRoom.Entrance.Transparency = 1 newRoom.Exit.Transparency = 1 newRoom.Parent = workspace.GeneratedRooms return newRoom end
- 校验命名规范:确认
Entrance和Exit的拼写、大小写完全一致(Roblox部件名称区分大小写),避免因拼写错误导致找不到部件。
内容的提问来源于stack exchange,提问作者Roblox Issue Guy
相关产品推荐
相关产品推荐

