我不能让我的Gamepass工作,因为这个。下面是我的代码:
local TENROBUXGUI = script.Parent
local TextButton = TENROBUXGUI.TextButton
TextButton.MouseButton1Up:Connect(function(hit)
local player = game.Players:GetPlayerFromCharacter(hit)
if player then
game:GetService("MarketplaceService"):PromptGamePassPurchase(player, 21187565)
end
end)
您似乎正在使用hit
的方式相同,您会发现使用Touched
事件触及游戏世界中的另一部分的BasePart
。然而,由于这是一个GUI,它的工作方式不同。
根据文档,MouseButton1Up
有两个数字参数,对应于用户在屏幕上点击/点击的确切x和y坐标。因为第一个参数对应的是x坐标值,而不是游戏世界中玩家的模型,所以它返回null。
所以,你要做的是引用game.Players.LocalPlayer
来获得点击GUI的玩家的Player
对象。
local TENROBUXGUI = script.Parent
local TextButton = TENROBUXGUI.TextButton
TextButton.MouseButton1Up:Connect(function()
local player = game.Players.LocalPlayer
if player then
game:GetService("MarketplaceService"):PromptGamePassPurchase(player, 21187565)
end
end)