루아(LUA)/로블록스

로블록스 고차함수에서 파라미터 넘기기

JK77 2021. 12. 22. 18:32

다음은 NPC를 클릭했을 때 '안녕하세요'라고 말하는 루아 코드이다. 고차함수란 익명 함수를 생성해 인자로 전달 받을 수 있는 함수로 매우 유연한 코드를 작성하게 해 준다.

 

아래 코드에서 14번째 코드는 보통 

click.MouseClick:Connect(speak)형태로 쓰이나 인자를 넘기기 위해 익명 함수를 사용했다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
local ChatService = game:GetService("Chat")
local npc = script.Parent
 
local head = npc.Head
local click = npc.ClickDetector
local dialogue = {}
 
local function speak(a)
    local dialogue = a
    ChatService:Chat(head, dialogue)
end
 
local b = "안녕하세요"
click.MouseClick:Connect(function() speak(b) end)
 
-- click.MouseClick:Connect(function() speak("안녕하세요") end)
cs