Game:CreateObject(Toybox.FX_Money, pos) Game:DeleteObject(cube) local function test() 예시 end cube.OnDestroyEvent:Connect(DestroyEvent)
local ButtonNum = tonumber ( string.sub ( self:GetName(), 7, 7 ) ) 7번 문자부터 7번 문자까지 가져오겠다임. 맨 뒷 글자만 숫자여서 한글자만 가져오려고 저렇게 한 것.
변수/함수의 선언 방법 3가지 1. : local = 지역 변수/함수 (같은 스크립트 안에서) ex) local a = 5 print(a) 2. : 생략 = 글로벌 변수/함수 (같은 종류의 모든 스크립트에서) ex) b = 5 print(b) 3. : Script.(변수이름) or Script:(함수이름) = 공개 변수/함수 (같은 종류의 모든 스크립트에서) ex) Workspace.Cube1.Var = 5 print(Workspace.Cube1.Var) : 할당을 자기 자신한테 했을 때 ex) Script.var = 12 공개변수 사용 가능한 객체 : Player, Character, Game, StaticMesh, Script, Table → 모두 같은 종류의 스크립트에서 불러오기 가능 공개변수 접근..

local table1 = {} --table1에 값이 없는 상태로 테이블이 만들어짐 table1 = {1} --이 값에서 table1 = {1, 2} --이 값처럼 2를 추가하고 싶을 때 table1 = {2} --이렇게는 추가가 안된다. 값이 {2}로 갱신됨 예시. table1 = {1, 2} table.insert(table1, 3) --이렇게 인서트로 추가하는 것임 table1 = {1, 2, 3} ------------------------------------------------------------------------------------------ SongData = { a , b, c} SongData[1] -- a a.Round = { 1,2,3 } --a라는 테이블 값에 Round..
[[]] Table [[ ]] --여러 줄을 문자열로 할당할 때 사용하는 키워드입니다. 예시. local SongCsvData = {} SongCsvData.Value = [[ Round,ID,Quiz,Choice1,Choice2,Answer,AnswerDesc 1,1,이건 퀴즈이다,맞다,아니다,2,퀴즈가 아니다. 1,2,루아스크립트이다,맞다,아니다,1,루아가 맞다. ]] CSV --스프레드시트에서 파일>다운로드>쉼표로 구분된 값(.csv) 하면 메모장에서 열/행을 쉼표로 변경하여 표현해준다. *스프레드시트 참고 https://docs.google.com/spreadsheets/d/1vAhd7Eof97Ffk8eqGqtRviMy6QmY7ra3FeygLA4oVB4/edit?usp=sharing string...

--- Data = { 1, 2, 3 } --이렇게 쉼표로 넣은 값은 인덱스 Data.ID = { a, b, c } --이렇게 공개변수로 넣으면 속성(키) Data = { 1, 2, 3, ID={ a, b, c } } --이렇게 속성(키)를 넣을 수도 있다. (윗줄에 적은게 Data에 값으로 들어오면 이렇게 들어옴) --- 인덱스, 속성 2가지로 구분되어 사용되는데 2개가 합쳐질 수 없다. 예시. Data = { 1, 2, 3 } 일때, Data.ID = { a,b,c } 로 Data에 값을 추가하면 Data = { 1,2,3,ID={a,b,c} } 이렇게 되는데 Data[3] 까지만 불러올 수 있다. ID는 속성(키)이기 때문에 Data[4]가 아닌 Data["ID"] 혹은 Data.ID 이렇게 해야된..
tonumber tonumber 함수는 문자열을 해당 숫자 값으로 변환한다. 문자열로 처리된 데이터를 숫자 값으로 변환하면 숫자 값으로만 할 수 있는 다양한 계산 및 분석을 수행할 수 있다. ToNumber("1001") 이 예에서는 숫자 값 1001을 반환합니다. ToNumber("1.48e12") 이 예에서는 숫자 값 1,480,000,000,000을 반환합니다. string이 숫자가 아닌 경우 ToNumber 함수는 본질적으로 #ERROR를 반환합니다 . 예시. =ToNumber("100")은 100을 반환합니다. =ToNumber("100 ") 은 #ERROR 를 반환합니다. (공간이 있기 때문에) tostring tostring()은 객체의 문자열/텍스트 표현을 반환한다. 일반적으로 디버깅,..
string.gsub string.gsub() 함수에는 세 개의 인수가 있다. 1. 첫 번째 인수는 하위 문자열을 다른 하위 문자열로 바꾸려는 주제 문자열이고 2. 두 번째 인수는 주어진 문자열에서 대체하려는 패턴이고 3. 세 번째 인수는 패턴을 교체하려는 문자열이다. local function ReplaceFlag(text) local result = text result = string.gsub(result, "%\"", "") result = string.gsub(result, "%#", "'") result = string.gsub(result, "%%", ",") return result end 식별자 " %(식별자) 그 다음 찾을 키워드 " 예시. "%#" "%%" "%\"" " %\" " :..
--Workspace/Sample/ScreenUI/Frame 경로에 있는 오브젝트를 FrameUI 변수에 할당해요. local FrameUI = Workspace.Sample.ScreenUI.Frame wait(2) --2초를 기다린 뒤, FrameUI:SetVisible(false) --FrameUI를 보이지 않게 해요. print("UI Visible : false") wait(2) --2초를 기다린 뒤, local UIState = FrameUI:GetVisible() --FrameUI의 현재 가시성 상태를 받아와요. FrameUI:SetVisible(not UIState) --FrameUI를 보이게 해요. print("UI Visible : true")
--Workspace/Sample/ScreenUI/Text 경로에 있는 오브젝트를 TextUI 변수에 할당해요. local TextUI = Workspace.Sample.ScreenUI.Frame.Text wait(2) --2초를 기다린 뒤, TextUI:SetText("Hello World!") --TextUI의 글자를 변경해요.
--Workspace/Sample/ScreenUI/Frame 경로에 있는 오브젝트를 FrameUI 변수에 할당해요. local FrameUI = Workspace.Sample.ScreenUI.Frame wait(2) --2초를 기다린 뒤, FrameUI:SetOpacity(0.5) --FrameUI의 투명도를 변경해요. 응용 애니메이션 for i = 1, 10 do targetUI:SetOpacity(i * 0.1) --점점 밝아짐 wait(0.1) end for i = 10, 1, -1 do targetUI:SetOpacity(i * 0.1) --점점 투명해짐 wait(0.1) end
--Workspace/Sample/ScreenUI/Frame 경로에 있는 오브젝트를 FrameUI 변수에 할당해요. local FrameUI = Workspace.Sample.ScreenUI.Frame --Workspace/Sample/ScreenUI/Text 경로에 있는 오브젝트를 TextUI 변수에 할당해요. local TextUI = FrameUI.Text --UI에 적용할 색상을 변수에 할당해요. local RedColor = Color.new(255, 0, 0, 255) local BlueColor = Color.new(0, 0, 255, 255) wait(2) --2초를 기다린 뒤, FrameUI:SetBackgroundColor(RedColor) --FrameUI의 색상을 변경해요. Text..

ServerScript --사용할 Phase를 등록해요. --Phase는 여러개도 등록할 수 있어요. local LobbyState = Game:AddPhase("Lobby") local PlayState = Game:AddPhase("Play") local ResultState = Game:AddPhase("Result") 더보기 함수 RModePhase AddPhase(string phasename) 게임에 단계를 추가할 수 있어요. (추가할 단계 이름) --서버와 클라이언트간 동기화되는 값을 등록하고 초기값을 설정한뒤, 값이 변경될때마다 호출되게 해요. Game:AddReplicateValue("GameState", "Lobby", Enum.ReplicateType.Changed, 0) 더보기 함수..

ServerScript --AddTimeEvent로 호출할 함수에요. local function PrintMessage() print("Call PrintMessage!") --메시지를 로그창에 출력해요. end --문자열("PrintMessage~")로 이벤트 이름과 PrintMessage 함수를 연결해서 호출해요. --이벤트 이름을 다르게하면 여러개도 호출할 수 있어요. Game:AddTimeEvent("PrintMessage1", 2, PrintMessage) Game:AddTimeEvent("PrintMessage2", 2, PrintMessage) 더보기 이벤트 AddTimeEvent(String EventName, float Time, LuaScriptFunction EventFuunction..

ServerScript --서버와 클라이언트간 동기화되는 값을 등록하고 초기값을 설정한뒤, 값이 변경될때마다 호출되게 해요. --Game에 GameID라는 변수를 선언하고 초기값으로 1을 할당해요. Game:AddReplicateValue("GameID", 1, Enum.ReplicateType.Changed, 0) 더보기 함수 AddReplicateValue(string ValueName, float Data, ReplicateType Type, float Time, bool bSaveToStorage) 해당 객체에 서버, 클라이언트 간 동기화가 가능한 실수를 추가해요. (추가할 Value 이름, float 데이터, Enum.ReplicateType.타입, 동기화 시간, 스토리지 저장 여부) 샘플 --..

ServerScript - CreateSyncObject --Workspace/Sample/Cube 경로에 있는 오브젝트를 Cube 변수에 할당해요. local Cube = Workspace.Sample.Cube --오브젝트를 생성할 위치를 변수에 할당해요. local CreatePos = Vector.new(300, 0, 300) wait(2) --2초를 기다린 뒤, --오브젝트를 위치에 생성해요. --생성한 오브젝트를 바로 변수에 할당할 수 있어요. local NewObject1 = Game:CreateSyncObject(Cube, CreatePos) --서버에서만 CreateSyncObject 사용 print("Create Object Name : " .. NewObject1:GetName() ....

ServerScript --Workspace/Sample/Cube 경로에 있는 오브젝트를 Cube 변수에 할당해요. local Cube = Workspace.Sample.Cube print("IsStaticMesh : ", Cube:IsStaticMesh()) --오브젝트가 스태틱메쉬면 true를 반환해요. print("IsCharacter: ", Cube:IsCharacter()) --오브젝트가 캐릭터면 true를 반환해요 print("IsFX : ", Cube:IsFX()) --오브젝트가 이펙트면 true를 반환해요 print("IsSound : ", Cube:IsSound()) --오브젝트가 사운드면 true를 반환해요 print("IsPointLight : ", Cube:IsPointLight()..

ServerScript wait(2) --2초를 기다린 뒤, local Player = Game:GetAllPlayer()[1] --게임의 첫번째 플레이어를 얻어서 Player 변수에 할당해요. 더보기 예제 --게임의 모든 플레이어를 Game:GetAllPlayer()로 얻은 다음, --AllPlayer 변수에 할당해요. local AllPlayer = Game:GetAllPlayer() --반복문을 이용해서 AllPlayer 변수에 할당된 플레이어들의 이름을 print로 출력해요. --첫번째(i = 1)부터 시작해서, --AllPlayer의 크기(#AllPlayer)만큼 반복하고 --n번째 자식 오브젝트(AllPlayer[i])의 이름을 로그창에 출력해요. for i = 1, #AllPlayer do ..

ServerScript --Workspace/Sample/Cube1 경로에 있는 오브젝트를 Cube 변수에 할당해요. local Cube = Workspace.Sample.Cube1 wait(2) --2초를 기다린뒤, Cube.Enable = false --오브젝트의 상태를 비활성화해요. print(Cube.Enable) --오브젝트의 상태를 로그창에 출력해요. wait(2) --2초를 기다린뒤, Cube.Enable = true --오브젝트의 상태를 활성화해요. print(Cube.Enable) --오브젝트의 상태를 로그창에 출력해요. -- Tip -- Enable을 하는 오브젝트에 자식 오브젝트가 있다면, 자식 오브젝트들의 상태도 같이 변경되요. Enable로 오브젝트를 비활성화하더라도 오브젝트의 충..

ServerScript --Workspace/Sample/Cube1 경로에 있는 오브젝트를 Cube 변수에 할당해요. local Cube = Workspace.Sample.Cube1 wait(2) --2초를 기다린뒤, Cube:SetVisibility(false) --오브젝트를 보이지 않게 해요. wait(2) --2초를 기다린뒤, Cube:SetVisibility(true) --오브젝트를 보이게 해요. Script Log