Lua Roblox gui script?

时间:2016-01-08 18:32:43

标签: lua roblox

当你坐在汽车座椅上时,我制作了一个GUI,它会告诉你它有“购买”按钮的汽车的速度和价值。我设法只制作了GUI,但我找不到编写脚本的方法,所以当你点击购买时,它会将玩家购买的汽车传送到经销商的后面。无论如何要做到这一点?

(我制作了一个Roblox Car游戏,编写了自己的房子,建立了经销商,地图等等。但是我找不到按照上述方式做的事情)

谢谢。

4 个答案:

答案 0 :(得分:2)

这只是一个例子,所以你必须为你的游戏修改它。

local car = game.Workspace.Car
local button = script.Parent
local teleportto = game.Workspace.DealerShipCarTeleport

button.MouseButton1Down:connect(function()
car:MoveTo(teleportto.Position)
end)

它使用MoveTo()函数,该函数将模型的PrimaryPartCFrame设置为Vector3位置。换句话说,MoveTo()将模型传送到指定位置。

答案 1 :(得分:0)

首先,您需要三个变量:汽车的model,点击时button应“购买”汽车,destination,您所在的地方希望汽车产生(经销商的背面)。

local model = game.Workspace.Car --or whatever the path to the model of your car is
local button = script.Parent --or whatever the path to your button is
local destination = Vector3.new(x, y, z) --the 3D coordinates of where you'd like the car to spawn

现在已经建立了这些,我们需要做到这一点,当你点击按钮时,汽车会在你想要的地方产生。

首先,让我们创建一个函数spawnCar(),在destination生成汽车。

local function spawnCar()
    model:MoveTo(destination) --use this if you want to move the car that's in the dealership
    model:Clone():MoveTo(destination) --use this if you want to make a copy of the car and move that
end

在这里,您有两种选择。第一个选项只是移动已经在经销商处的汽车,但第二个选项首先制作汽车的副本,然后将 移动到经销商的后面。

两个选项都使用汽车模型的MoveTo()方法。所有型号都有此方法可用。要了解详情,请查看ROBLOX Wiki's page on it

第二个选项使用汽车模型的Clone()方法。所有模型和许多其他对象类型(包括零件)都可以使用此方法。要了解详情,请查看ROBLOX Wiki's page on it

现在,我们将编写“监听”用户单击按钮的代码。请看以下方法:

button.MouseButton1Down:connect(func)

如果我们将这个添加到我们的代码中,每次单击该按钮时,我们将为func传入的任何函数都将被执行。如果您想了解有关MouseButton1Down和其他类似属性的更多信息,我强烈建议您查看ROBLOX Wiki;它有关于这些的广泛文档。您可以找到MouseButton1Down here

现在,我们将spawnCar()函数传递给点击监听器。

button.MouseButton1Down:connect(spawnCar) --notice it's "spawnCar", NOT "spawnCar()"

我们已经完成了!这是最终代码的样子:

local model = game.Workspace.Car --or whatever the path to the model of your car is
local button = script.Parent --or whatever the path to your button is
local destination = Vector3.new(x, y, z) --the 3D coordinates of where you'd like the car to spawn

local function spawnCar()
    model:MoveTo(destination) --use this if you want to move the car that's in the dealership
    model:Clone():MoveTo(destination) --use this if you want to make a copy of the car and move that
end

button.MouseButton1Down:connect(spawnCar) --notice it's "spawnCar", NOT "spawnCar()"

答案 2 :(得分:0)

我相信this正是您所寻找的。您需要做的是在点击按钮时重新设置零件或模型的位置。以下是您可以在按钮中插入的脚本示例:script.Parent.MouseButton1Click:connect(function() Model:MoveTo ( Vector3 position ) end)。以下是我认为可以帮助您的更多链接:
- https://scriptinghelpers.org/questions/9837/how-do-i-position-a-model
- http://wiki.roblox.com/index.php?title=API:Class/GuiButton/MouseButton1Click

答案 3 :(得分:0)

尝试使用 CFrame 传送汽车

示例

local car = workspace.Car -- define the car.
local tp = workspace.TP -- Like a position of where it should be, must be anchored at all -- times!!!!

car.CFrame = CFrame.new(tp.Position) -- Position of where you want it to be.

上面的代码设置了 2 个变量,一个是汽车,另一个是 tp 部分。然后我们将汽车 CFrame 设置为 tp 的位置属性。希望能帮到你!