안녕하세요.
메타버스와 함께 많은 개발자들이 뛰어든 Roblox 관련해서 Lua 스크립트를 작성하는 법에 대해 궁금해하시는 분들이 많을 거라고 생각하는데요.
기초부터 차근차근 다지기 위해 Developer 사이트에서 Coding 관련해서 실습을 하면서 내용들을 정리해보려고 합니다.
로블록스 스튜디오로 개발을 시작하시려는 분들께 도움이 되었으면 좋겠네요 :)
1. 스크립트를 적용할 대상을 만들어 보자!
자 우선, Baseplate를 생성하면 Respawn 지역은 이미 설정이 되어 있을텐데요.
파트를 이용해서 네모난 블록을 하나 배치해보겠습니다.
이 블록이 나타났다 사라졌다를 3초마다 반복하도록 만들려고 합니다.
우선 블록의 특성에서 Anchored를 체크해주세요. 이걸 체크한다면 게임 상에서 어떤 일이 생기더라도 해당 파트는 제자리를 유지합니다. 즉 고정을 시켜주는 거에요.
그리고 우측의 탐색기에 만든 파트를 클릭하면 + 버튼이 보이는데요, 이를 클릭해서 script를 추가할 수 있습니다.
스크립트를 더블 클릭하시면 익숙한 "Hello world!"가 보이실텐데요. 이 라인을 전부 지워줍니다.
스크립트를 생성하시고, 파트의 이름은 DiasppearingPlatform으로 설정해주세요.
스크립트 이름은 Disppear로 해주시면 됩니다.
2. 스크립트를 작성해 보자!
스크립트를 작성할 때 빠질 수 없는게 변수(Variable)인데요. 이를 위해 작성 시에 플랫폼의 변수를 만들어 스크립트를 시작하는 것이 좋습니다.
변수는 값과 연관된 이름입니다. 변수가 한 번 생성되면 변수를 계속 사용할 수 있고, 필요에 따라 값을 변경할 수 있습니다.
local platform = script.Parent
platform에 대한 변수 생성을 위해 local platform으로 선언하였습니다.
그리고 이 변수에 스크립트가 위치한 개체를 찾는데 사용되는 script.Parent를 입력하여 줌으로써 현재 작성중인 script에 대해 Parent 속성(script가 위치한 상위 레벨의 오브젝트를 가리킴)을 platform에 입력해줬습니다.
이 때, 변수의 이름은 camel case를 따라 작성합니다.
이제, 파트가 사라지고 나타나는 기능을 해주는 함수(Function)을 작성해보겠습니다.
local platform = script.Parent
local function disappear()
end
첫 번째 local function disappear()이 함수를 선언하는 부분이고, end와의 사이에 함수의 기능이 들어가게 됩니다.
로블록스 스튜디오 상에서 오브젝트를 클릭하면 해당 오브젝트마다 설정이 가능한 속성들이 있는데, 스크립트의 함수에서 이를 이용해서 오브젝트에 동작을 줄 수 있습니다.
여기서 다루려는 속성은 아래 두 가지입니다 :)
Transparency : 투명도(0 : 불투명 / 1: 투명)
CanCollide : 통과 가능 여부(false : 플레이어 통과 가능 / true : 플레이어 통과 불가능, 충돌)
이를 이용해 파트가 사라지는 함수와 나타나는 함수는 아래와 같이 작성이 가능합니다.
local platform = script.Parent
local function disappear()
platform.CanCollide = false
platform.Transparency = 1
end
local function appear()
platform.CanCollide = true
platform.Transparency = 0
end
자, 함수를 작성했으면 이제 호출을 해줘야 동작을 하겠죠?
그런데, 게임 중에 계속해서 해당 동작을 수행해야하기 때문에 계속해서 동작이 반복되도록 아래와 같이 스크립트를 작성해줘야 합니다.
local platform = script.Parent
local function disappear()
platform.CanCollide = false
platform.Transparency = 1
end
local function appear()
platform.CanCollide = true
platform.Transparency = 0
end
while true do
wait(3)
disappear()
wait(3)
appear()
end
3. 스크립트 실행해 보자!
자, 스크립트를 작성했으면 플레이를 해서 확인해보면 됩니다.
이번 포스팅은 여기서 마치도록 하겠습니다.
감사합니다.
방문하신 모든 분들 좋은 하루 보내세요~!