如何在Roblox (Lua)中为一个函数创建一个变量

local colorwheel = script.Parent
local clickdetector = colorwheel.ClickDetector
local barlight = workspace.barlight:GetChildren()

--尝试将函数作为变量--
local rightmouse = function onMouseClick()
        print("关闭灯光")
        barlight.Transparency = 1
end

local leftmouse = function onMouseClick()
        print("打开灯光")
        barlight.Transparency = 0
end

clickdetector.RightMouseClick:connect(rightmouse)
clickdetector.MouseClick:connect(leftmouse)

我正在尝试创建一个函数,这样当模型"colorwheel"被点击时,它会改变"barlight"模型的透明属性。我想为onMouseClick()函数建立两个单独的变量,这样我就可以根据点击它的鼠标按钮来改变函数的行为方式。一个用于打开灯光,另一个用于关闭灯光。所有这些都是在服务器脚本而不是本地脚本中完成的(不确定这是否有任何意义)

local rightmouse = function onMouseClick()
local leftmouse = function onMouseClick()

当我尝试将onMouseclick()设置为变量时,它会在单词下面出现红色下划线,并告诉我"_Workspace.barlight wheel.Script:5: Expected'('when parsing function, got 'onMouseClick'"_有什么想法吗?

原文链接 https://stackoverflow.com/questions/70011853

点赞
stackoverflow用户2858170
stackoverflow用户2858170

function onMouseClick() end 定义了一个函数,它不会转换成函数值。因此,您不能尝试将其分配给本地变量,如下所示:

local rightmouse = function onMouseClick()
        print(" turned the lights off")
        barlight.Transparency = 1
end

这是不正确的语法。您可以以两种方式定义函数:

local function myFunction() end

或者

local myFunction = function () end

因此,要么是

local rightmouse = function ()
        print(" turned the lights off")
        barlight.Transparency = 1
end

如果您想让函数的名称是 rightmouse,或者

local function onMouseClick()
        print(" turned the lights off")
        barlight.Transparency = 1
end

如果您想让函数的名称是 onMouseClick

2021-11-17 21:48:48