스크립트는 게임에 사용자 정의 동적 동작을 추가할 수 있는 일반 텍스트 파일입니다. 스크립트를 사용하여 게임 내 이벤트를 트리거하고, 플레이어 입력에 응답하고, 플레이어 데이터를 저장하고, 리더보드를 만들고, 적을 생성하고, NPC 동작을 제어하는 등 다양한 작업을 수행할 수 있습니다.
Luau
Roblox 스크립트는 Luau 프로그래밍 언어를 사용합니다. Luau는 Lua 5.1에서 파생되었습니다.
- Lua 5.1에 비해 Luau는 성능 향상 및 많은 유용한 기능을 추가합니다. 여기에는 선택적 타입 시스템, 문자열 보간 및 테이블에 대한 일반화된 반복이 포함됩니다.
- 유효한 Lua 5.1 코드는 모든 Luau 코드에서 유효하지만 그 반대는 사실이 아닙니다.
Lua에 대한 대부분의 책과 온라인 리소스는 여전히 Luau에 널리 적용됩니다. 차이점에 대한 자세한 요약은 Luau 문서의 호환성을 참조하세요. 언어 구문에 대한 내용은 Luau 참조를 참조하세요.
Luau 기초
Luau는 점진적 타입이므로 변수를 생성할 때 타입을 지정할 필요가 없습니다. type()를 사용하여 객체 타입을 확인할 수 있습니다:
logMessage = "사용자가 10개 이상의 아이템을 가지고 있습니다!"print(logMessage) --> 사용자가 10개 이상의 아이템을 가지고 있습니다!print(type(logMessage)) --> string
Luau에는 전역 및 지역 스코프가 있지만, 거의 항상 local 키워드를 사용하여 변수를 지역적으로 선언하는 것이 더 좋습니다:
local logMessage = "사용자가 10개 이상의 아이템을 가지고 있습니다!"
local function printMessage()
print(logMessage)
end
printMessage() --> 사용자가 10개 이상의 아이템을 가지고 있습니다!
Luau는 존재하지 않거나 아무것도 없음을 나타내기 위해 nil을 사용하며, 이는 조건문의 평가에서 false로 간주됩니다:
local messageToUserprint(messageToUser) --> nilprint(type(messageToUser)) --> nilif messageToUser then-- 문장은 false로 평가됨end
주목했겠지만, --는 한 줄 주석을 시작합니다. --[[]]는 블록 주석을 만듭니다:
--[[
즉시 우주 달 광선을 끕니다.
우주 달 광선에 손상을 주지 않도록 산악 표준시 자정 15분 이내에만 호출해야 합니다.
]]
local function stopCosmicMoonRay()
-- 나중에 추가하세요. 이는 중요할 수 있습니다.
end
테이블은 배열과 사전을 위한 일반적인 용어입니다. 배열은 0보다 1부터 시작하므로 첫 번째 항목은 [1]입니다. 배열과 사전은 한 쌍의 중괄호로 선언합니다:
local myArray = {"감자칩", "탄산수", "살사"}local myDictionary = {스낵 = "감자칩",음료 = "탄산수",딥 = "살사"}print(myArray[1]) --> 감자칩print(myDictionary.딥) --> 살사
테이블을 반복하려면 for 루프를 사용하고, 배열에는 ipairs() 함수를, 사전에는 pairs() 함수를 사용할 수 있지만, Luau는 이러한 함수를 생략하여 보다 깔끔한 구문을 제공합니다:
for index, value in ipairs(myArray) do -- 표준 Luaprint(index, value)endfor key, value in pairs(myDictionary) do -- 표준 Luaprint(key, value)endfor key, value in myDictionary do -- Luau 일반화된 반복print(key, value)end
첫 번째 스크립트
Roblox Studio에서 Explorer 창에서 ServerScriptService 위에 마우스를 올리고 **+**를 클릭합니다.
스크립트를 선택하여 새 스크립트를 추가합니다.
스크립트를 마우스 오른쪽 버튼으로 클릭하고 이름을 HelloScript로 변경합니다.
스크립트를 두 번 클릭하여 스크립트 편집기에서 엽니다.
다음 코드를 파일에 추가합니다:
local helloArray = {"h", "e", "l", "l", "o"}local worldArray = {"w", "o", "r", "l", "d"}for index, value in helloArray doprint(value)endprint(table.concat(worldArray))출력 창이 열려 있는지 확인합니다.
게임을 실행하고 출력 내용을 확인합니다:
hel (x2)oworld
익숙해지기
새로운 개발 환경에 적응하는 큰 부분은 그것을 개인의 필요에 맞게 구성하고 사용할 수 있는 도구를 이해하는 것입니다:
- Studio 설정의 스크립트 편집기 섹션에서는 폰트, 색상, 들여쓰기, 자동 완성, 괄호 및 도구 설명과 같은 품질 향상 기능을 조정할 수 있습니다. Studio 섹션에서 다크 모드를 활성화하는 것도 고려할 수 있습니다.
- Ctrl 또는 Command를 누른 채 함수나 변수를 클릭하면 코드베이스의 선언 또는 온라인 문서로 이동합니다. 찾기 및 모두 찾기를 사용하면 더 큰 프로젝트를 탐색하는 데 도움이 될 수 있습니다.
- 스크립트 분석 창은 오류와 경고를 요약하여 보여주지만 그 유용성은 제한적일 수 있습니다. 스크립트 편집기는 입력 시 이러한 문제를 강조 표시합니다.
스크립팅을 위한 Studio 구성에 대한 자세한 정보는 스크립트 편집기를 참조하세요.
두 번째 스크립트
Roblox Studio에서 Explorer 창의 ReplicatedStorage에 스크립트를 추가하고 이름을 OhNo로 변경합니다.
다음 코드를 파일에 추가합니다:
print("안녕하세요 스크립트 유형 및 위치!")게임을 실행합니다.
출력이 첫 번째 스크립트를 실행했을 때와 다르지 않음을 확인합니다.
스크립트가 실행되지 않은 이유를 이해하려면 스크립트 유형 및 위치를 참조하세요.