需要在与 NPC 对话完成后更改对象的透明度

我是 Roblox 脚本的新手,我试图使武器在与 NPC 对话开始时从透明变为可见。

我在属性中将武器“Autohyperlaser”的透明度设置为了 1,所以默认情况下它是透明的。我有一个名为“Weapon_holder”的 NPC,它有一个 Dialog 和 DialogChoice 子对象,因此层次结构如下:

workspace.Weapon_holder.Head.Dialog.DialogChoice

我在 DialogChoice 对象下创建了一个脚本,其中包含以下代码:

local Dialog = script.Parent

Dialog.DialogChoiceSelected:Connect(function(Player, Choice)
workspace.Autohyperlaser.Handle.Transparency = 0
end)

我希望在选择任何对话选项后,workspace.Autohyperlaser.Handle 的透明度从 1 变为 0。然而,枪仍然是透明的,因此,该脚本要么不正确,要么没有被调用。我该如何让它工作?

点赞
用户10847745
用户10847745

DialogChoiceSelected 事件只能在客户端触发。它是一个 Dialog 的事件,而不是 DialogChoice。由于事件只能在客户端触发,所以您必须在 LocalScript 中使用它。您可以将 LocalScript 放入角色中,方法是将其放入 StarterPlayer>StarterCharacterScripts,或放入玩家中,方法是将其放入 StarterPlayer>StarterPlayerScripts,因为只有作为这些或任何其他玩家附属对象的后代的 LocalScripts 才会运行。

对于代码,您只需要更改 Dialog 变量:

local Dialog = workspace.Weapon_holder.Head.Dialog --Since it is an event of a Dialog

Dialog.DialogChoiceSelected:Connect(function(Player, Choice)
workspace.Autohyperlaser.Handle.Transparency = 0
end)

如果 LocalScript 在正确的位置上,它现在应该触发。

2018-12-30 13:04:53