You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何用Roblox Studio的Proximity Prompt实现模型隐藏/透明?

解决Roblox Studio中Proximity Prompt不显示及模型隐藏问题

一、先修复Proximity Prompt不显示的问题

Proximity Prompt必须挂载在BasePart(如Part、MeshPart)上才能正常显示,直接放在模型上无效。按以下步骤排查:

  • 将Proximity Prompt拖到模型内的任意一个Part上
  • 检查Prompt的核心属性:
    • 确保Enabled设为true
    • 调大MaxActivationDistance(比如设为10),保证你处于触发范围内
    • 新手测试可暂时把RequiresLineOfSight设为false,避免被场景物体遮挡
  • 修正WaitForChild的使用:如果脚本里获取Prompt,要指向挂载Prompt的Part,比如模型里的Part叫"CorePart",写法应为script.Parent.CorePart:WaitForChild("ProximityPrompt"),不要直接在模型对象上调用WaitForChild

二、实现模型隐藏/透明的脚本

方案1:切换模型所有部件的透明度

把**服务器脚本(蓝色图标)**放在挂载了Proximity Prompt的Part上:

local proximityPrompt = script.Parent:WaitForChild("ProximityPrompt")
local targetModel = script.Parent.Parent -- 假设Part的父对象就是要隐藏的模型

-- 绑定触发事件
proximityPrompt.Triggered:Connect(function()
    -- 遍历模型下所有部件,切换透明度
    for _, part in ipairs(targetModel:GetDescendants()) do
        if part:IsA("BasePart") then
            part.Transparency = part.Transparency == 0 and 1 or 0
        end
    end
end)

方案2:隐藏带Humanoid的模型(如NPC)

如果目标模型是带Humanoid的角色,可直接切换模型的Enabled属性:

local proximityPrompt = script.Parent:WaitForChild("ProximityPrompt")
local targetModel = script.Parent.Parent

proximityPrompt.Triggered:Connect(function()
    targetModel.Enabled = not targetModel.Enabled
end)

三、常见坑点

  • 脚本类型错误:必须用服务器脚本,不要用本地脚本,Proximity Prompt的Triggered事件在服务器端触发
  • 脚本位置错误:脚本要放在Workspace内的部件上,不要放在ServerScriptService(新手阶段无需复杂架构)
  • 模型层级错误:确保targetModel的路径正确,比如如果Part在模型的子文件夹里,要调整script.Parent.Parent为对应路径

内容的提问来源于stack exchange,提问作者Senior Hamster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 20:33:18