로블록스는 RESTAPI 통신을 통해 외부 서버와 연결이 가능하다.
모든 가능성을 열어 둔것이.... 정말 좋은 서비스 인듯 하다. 보통은 본인들 플랫폼에서 무언가를 구현할 때 제약사항이 많다.
해당 스크립트는 모듈 스크립트로 생성 해야 한다.
RESTAPI 예제 코드)
local RESTAPI = {}
local httpService = game:GetService("HttpService")
local baseUrl = "서버주소"
function RESTAPI.CommunicateTest()
local url = baseUrl .. "api주소"
local json = { 키값1 = "해당하는 value값"}
local res = Post(url,httpService:JSONEncode(json))
if res ~= nil and res["result"] ~= nil then
print(res["result"])
else
print(res)
end
end
function Post(url,json)
local success, response = pcall(function()httpService:PostAsync(url,json,Enum.HttpContentType.ApplicationJson)end) --pcall to catch errors
if success then
if response.StatusCode == 400 then
print("Bad request")
else
print("Request was successful")
end
else
print("Request failed with error:", response)
end
return RESTAPI
예를들어 버튼 클릭 -> LocalScript 에서 이벤트 수신 -> 서버 스크립트로 내용 전달 -> 모듈 스크립트 호출 의 동작이 필요할 경우
일전에 설명했던 모듈 스크립트 호출 방식을 이용한다.
1. 등록 (이벤트를 수신받을 서버 스크립트에서)
local 클래스명 = {}
function 클래스명.함수명()
...
end
return 클래스명
2. 호출
local moduleClass명 = require(game.ServerScriptService.모듈클래스명)
...
//인자값은 다양하게 입력 가능하다.
local result = moduleClass명.함수명(인자값)
'로블록스 게임제작' 카테고리의 다른 글
pcall (0) | 2024.02.14 |
---|---|
코루틴 (0) | 2024.02.14 |
UI 상호작용 및 커스텀 이벤트 전달 (local -> server) (0) | 2024.02.13 |
캐릭터에 악세서리 추가 (0) | 2024.02.13 |
캐릭터 이동확인 이벤트 (0) | 2024.02.13 |