与 NPC 的对话完成后需要更改对象的透明度
Need to change transparency of an object once dialog with NPC completes
我是 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。但是,枪仍然是透明的,因此脚本不正确或未被调用。我怎样才能让它工作?
DialogChoiceSelected 事件只能在客户端触发。这是一个事件
a Dialog, not DialogChoice. And you have to use it in a LocalScript 因为事件只是客户端的。您可以通过将 LocalScript 放入 StarterPlayer>StarterCharacterScripts 或通过将其放入 StarterPlayer>StarterPlayerScripts 将 LocalScript 放入角色,因为如果 LocalScripts 是这些或任何其他玩家后代的后代,则 LocalScripts 只会 运行对象。
对于代码,您只需更改对话框变量:
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 位于正确的位置,现在应该触发它。
我是 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。但是,枪仍然是透明的,因此脚本不正确或未被调用。我怎样才能让它工作?
DialogChoiceSelected 事件只能在客户端触发。这是一个事件 a Dialog, not DialogChoice. And you have to use it in a LocalScript 因为事件只是客户端的。您可以通过将 LocalScript 放入 StarterPlayer>StarterCharacterScripts 或通过将其放入 StarterPlayer>StarterPlayerScripts 将 LocalScript 放入角色,因为如果 LocalScripts 是这些或任何其他玩家后代的后代,则 LocalScripts 只会 运行对象。
对于代码,您只需更改对话框变量:
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 位于正确的位置,现在应该触发它。