In Introduction to Roblox Studio, you learned how to create and manipulate parts in Roblox Studio. In this tutorial, you'll learn how to apply a script to parts to make a platform appear and disappear. You can use this in a platforming experience to span a gap, challenging users to time their jumps carefully to get to the other side.
장면 설정하기
먼저, Part가 필요합니다. 이는 플랫폼 역할을 할 것입니다. 부품을 만들고 이동하는 것은 Introduction to Roblox Studio에서 익숙할 것입니다. 플랫폼 외에는 복잡한 세상이 필요하지 않습니다 — 사용자들이 쉽게 건널 수 없는 간격만 있으면 됩니다.
Part를 삽입하고 이름을 DisappearingPlatform으로 변경합니다.
사용자가 점프할 수 있을 만큼 충분히 크게 크기를 조정합니다.
경험을 테스트할 때 도달하고 점프할 수 있도록 적절한 위치로 이동합니다.

Properties 창에서 Anchored 속성을 true로 설정합니다.

스크립트 삽입하기
Roblox의 코드는 Luau라는 언어로 작성되며, 이는 Explorer의 다양한 컨테이너 내에 스크립트로 넣을 수 있습니다. Part 아래에 스크립트를 넣으면 Roblox는 부품이 경험에 로드될 때 스크립트의 코드를 실행합니다.
Explorer 창에서 DisappearingPlatform 부품 위에 마우스를 올리고 + 버튼을 클릭하여 플랫폼에 새로운 스크립트를 삽입합니다. 새로운 스크립트의 이름을 Disappear로 변경합니다.

기본 코드를 삭제합니다.
첫 번째 변수
스크립트를 시작할 때 플랫폼에 대한 변수를 만드는 것이 좋습니다. 변수가 무엇인지에 대한 정의는 값과 연관된 이름입니다. 변수가 생성되면 반복적으로 사용할 수 있습니다. 필요에 따라 값을 변경할 수 있습니다.
Luau에서 변수는 다음과 같이 생성됩니다: local variableName = variableValue.
local이라는 용어는 변수가 선언된 스크립트 블록 내에서만 사용된다는 의미입니다. = 기호는 변수의 값을 설정하는 데 사용됩니다. 변수 이름은 일반적으로 camel case로 작성됩니다. 첫 단어는 소문자이고, 그 뒤의 단어는 대문자로 시작합니다. justLikeThis.
다음 코드를 복사하여 플랫폼에 대한 변수 platform을 생성합니다. 여기서 값은 script.Parent입니다.
local platform = script.Parent
사라지기 기능
이제 플랫폼이 사라지게 만들 시간입니다. 특정 작업을 달성하는 코드를 그룹화하는 것은 함수로 하는 것이 항상 가장 좋습니다. 함수는 코드를 조직하고 여러 장소에서 다시 작성하지 않고 사용할 수 있게 도와주는 이름이 붙은 코드 블록입니다. 스크립트에서 함수를 생성하고 이름을 disappear로 지정합니다.
local platform = script.Parent
local function disappear()
end
첫 번째 새 줄은 함수의 시작을 선언합니다. 이는 함수의 시작을 나타내고, 이를 disappear라고 명명합니다. 함수 코드는 첫 번째 줄과 end 사이에 위치합니다.
괄호는 필요한 경우 추가 정보를 포함하는 데 사용됩니다. 함수에 정보를 전달하는 방법에 대해서는 나중의 강좌에서 더 배우게 될 것입니다.
부품 속성
플랫폼이 사라질 때, 이는 보이지 않아야 하고 사용자는 이를 뚫고 떨어져야 합니다 — 하지만 단순히 플랫폼을 파괴할 수는 없습니다. 나중에 다시 나타나야 하기 때문입니다.
부품에는 이곳에서 사용할 수 있는 다양한 속성이 있습니다. 부품을 선택하고 Properties 창을 살펴보면 부품의 속성을 볼 수 있습니다.
부품을 보이지 않게 하려면 Transparency 속성을 변경하면 됩니다. 투명도는 0과 1 사이의 값일 수 있으며, 1은 완전히 투명하고 보이지 않음을 의미합니다.
CanCollide 속성은 다른 부품 (및 사용자)이 해당 부품을 통과할 수 있는지를 결정합니다. 이 값을 false로 설정하면 사용자는 플랫폼을 통과할 수 있습니다.
scrpt.Parent와 마찬가지로 속성은 점을 사용하여 접근합니다. 값은 등호 기호를 사용하여 할당합니다.
disappear 함수 안에서 플랫폼의 CanCollide 속성을 false로 설정합니다.
다음 줄에는 Transparency 속성을 1로 설정합니다.
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1end
함수 호출하기
함수를 선언한 후에는 괄호와 함께 이름을 작성하여 실행할 수 있습니다. 예를 들어, disappear()는 disappear 함수를 실행합니다. 이를 함수 호출이라고 합니다.
스크립트의 마지막에서 disappear 함수를 호출합니다.
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1enddisappear()플레이 테스트를 시작합니다. 코드가 작동하면 사용자가 스폰할 때 플랫폼이 사라져야 합니다.
나타나기 기능
disappear 함수의 정반대의 기능을 작성하여 플랫폼을 다시 나타나게 만들 수 있습니다.
스크립트에서 disappear() 줄을 삭제합니다.
appear라는 새로운 함수를 선언합니다.
함수 본문에서 CanCollide 속성을 true로 설정하고 Transparency 속성을 0으로 설정합니다.
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1endlocal function appear()platform.CanCollide = trueplatform.Transparency = 0end
코드 반복
플랫폼은 지속적으로 사라졌다가 다시 나타나야 하며, 각 상태 간에는 몇 초의 시간이 필요합니다. 무한한 수의 함수 호출을 작성하는 것은 불가능합니다 — 다행히도, while 루프를 사용하면 그렇게 할 필요가 없습니다.
while 루프는 while 뒤의 조건이 참인 동안 내부 코드를 실행합니다. 이 특정 루프는 영원히 실행되어야 하므로 조건은 true로 설정해야 합니다. 스크립트 끝에 while 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
while true do
end
플랫폼 토글하기
while 루프에서 플랫폼이 사라지고 다시 나타나는 사이에 몇 초를 기다리는 코드를 작성해야 합니다.
기본 제공 함수 task.wait()를 사용하면 됩니다. 괄호 안에는 기다려야 할 초 수가 필요합니다: 예를 들어 task.wait(3)입니다.
3초는 각 플랫폼 상태 간의 시간을 정하는 데 바람직한 시작점입니다.
- while 루프 안에서 task.wait() 함수를 사용하여 괄호 안에 3을 호출합니다.
- disappear 함수를 호출합니다.
- 다시 task.wait() 함수를 호출하여 괄호 안에 3을 넣습니다.
- appear 함수를 호출합니다.
while true dotask.wait(3)disappear()task.wait(3)appear()end
플랫폼 코드가 이제 완성되었습니다! 지금 코드를 테스트해 보세요. 3초 후에 플랫폼이 사라지고, 다시 3초 후에 다시 나타나는 것을 볼 수 있을 것입니다.
이 플랫폼을 복제하여 더 넓은 간격을 커버할 수 있지만, 각 스크립트에서 대기 시간을 변경해야 합니다. 그렇지 않으면 모든 플랫폼이 동시에 사라져 사용자가 건너갈 수 없게 됩니다.
최종 코드
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
task.wait(3)
disappear()
task.wait(3)
appear()
end