루프와 배열

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

배열whilefor와 같은 루프와 결합되어 각 인덱스 값에 대해 동일한 코드를 반복할 수 있습니다. 예를 들어, 배열의 각 플레이어를 새로운 장소로 이동시키거나 부품 배열을 불타게 만드는 것입니다.

배열을 반복적으로 탐색하기 위해 부품이 배열에 놓이고 하나씩 사라지는 사라지는 다리 경로를 만듭니다.

배열을 통한 반복

프로젝트를 위해 사라질 세 개의 부품 세트를 찾거나 생성합니다. 부품은 모두 고정되어 있어야 합니다.

  1. 세 개의 부품을 생성합니다. 부품이 사라져야 하는 순서에 따라 부품의 이름을 지정합니다: Part1, Part2, Part3.

  2. ServerScriptService에서 새로운 스크립트를 삽입하고 부품을 저장할 배열을 만듭니다.


    local pathArray = {
    }
  3. 각각을 한 줄에 입력하여 부품의 이름을 사라져야 하는 순서대로 입력합니다. 값을 새 줄로 구분하면 읽기가 더 쉽습니다.


    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3,
    }

배열과 함께 for 루프 사용

for 루프를 사용하여 배열을 반복하고 부품이 배열 내의 인덱스 순서에 따라 얼마나 빠르게 사라져야 하는지를 제어합니다.

  1. 부품이 몇 초마다 사라지는지를 제어할 변수를 생성합니다. VANISH_RATE라는 이름을 사용합니다. 테스트를 위해 작은 숫자로 유지하는 것이 가장 좋습니다.


    local VANISH_RATE = 1.5
    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3
    }
  2. 다음을 사용하여 for 루프를 생성합니다: 시작: partIndex = 1, 배열에서 첫 번째 값의 인덱스. 종료: #pathArray, 해당 배열의 크기입니다.


    for partIndex = 1, #pathArray do
    end
  3. 부품이 사라지기 전에 지연 시간이 생기도록, 루프 내에 task.wait()VANISH_RATE를 사용하여 추가합니다.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    end
  4. 부품을 사라지게 하려면 whichPart라는 새 변수를 만들고 partsArray[partIndex]에 해당 값을 설정합니다. 그런 다음 그 부품이 사라지도록 하려면 CanCollide 속성을 false로 설정하고 Transparency를 1로 설정합니다.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
  5. 시간이 지나면서 경로의 부품이 사라지는지 확인합니다.

문제 해결 팁

다리가 사라지지 않는 경우, 아래 가능한 문제를 확인하세요:

문제: 부품이 너무 빠르게 사라지거나 시작할 때 모두 사라짐.

  • 캐릭터가 경험에 로드되는 속도에 따라 첫 번째 부품은 이미 보이지 않을 수 있습니다. 이를 해결하기 위해 스크립트 시작 부분에 task.wait(2)와 같은 작은 대기 시간을 추가합니다.

두 번째 루프 코딩

현재 부품이 영원히 사라집니다. 다시 나타나게 하려면, 각 부품을 탐색하고 각 부품을 즉시 걸어 다닐 수 있도록 하는 두 번째 for 루프를 만듭니다.

  1. 첫 번째 루프 다음에 짧은 지연을 만들기 위해 task.wait()를 추가합니다.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    task.wait(1)
  2. 스스로 두 번째 for 루프를 코딩하여 각 부품의 CanCollide 속성을 true로, Transparency를 0으로 변경하여 경로를 다시 사용할 수 있도록 시도해 보세요. 완료되면 아래 코드를 참조하여 작업을 확인하세요.


    -- 모든 부품을 다시 걸어 다닐 수 있도록 경로를 재설정합니다.
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
  3. 프로젝트를 테스트하여 모든 부품이 사라진 후 다시 나타나는지 확인합니다.

while 루프를 사용하여 반복하기

부품이 사라졌다가 다시 나타나지만 한 번만 발생합니다. 코드가 계속 반복되도록 모든 코드를 while 루프 내에 중첩합니다.

  1. 스크립트 맨 아래에 새로운 while true do 루프를 생성합니다. 그런 다음, 두 개의 for 루프를 while 루프 안으로 이동합니다.


    while true do
    -- 배열에서 순서대로 부품을 사라지게 합니다.
    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    -- 경로가 다시 나타나기 전에 1초 기다립니다.
    task.wait(1)
    -- 모든 부품을 다시 걸어 다닐 수 있도록 경로를 재설정합니다.
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
    end
  2. 모든 부품이 사라진 후 다시 나타나는지 확인합니다.

완성된 프로젝트 버전은 다운로드할 수 있습니다.

완성된 스크립트

local VANISH_RATE = 1.0
local pathArray = {
workspace.Part1,
workspace.Part2,
workspace.Part3,
}
while true do
-- 배열에서 순서대로 부품을 사라지게 합니다.
for partIndex = 1, #pathArray do
task.wait(VANISH_RATE)
local whichPart = pathArray[partIndex]
whichPart.CanCollide = false
whichPart.Transparency = 1
end
-- 경로가 다시 나타나기 전에 1초 기다립니다.
task.wait(1.0)
-- 모든 부품을 다시 걸어 다닐 수 있도록 경로를 재설정합니다.
for partIndex = 1, #pathArray do
local whichPart = pathArray[partIndex]
whichPart.CanCollide = true
whichPart.Transparency = 0
end
end

배열과 ipairs()

ipairs()배열과 함께 사용됩니다. ipairs()의 "i"는 "인덱스"를 의미합니다. ipairs()는 모든 객체, 예를 들어 부품이 가득 찬 폴더에서 작업을 빠르게 반복하는 데 사용할 수 있습니다.

이것은 부품 폴더의 모든 부품에 입자를 빠르게 추가하는 방법으로 시연됩니다.

  1. Workspace에서 PartsFolder라는 이름의 폴더를 만듭니다. 원하는 만큼 많은 부품을 추가합니다.

  2. ServerScriptService에서 새 스크립트를 생성하고 폴더를 참조합니다.

  3. GetChildren()을 사용하여 폴더의 모든 객체 목록이 포함된 배열을 자동으로 가져옵니다.


    local partsFolder = workspace.PartsFolder
    -- PartsFolder에 있는 부품 목록을 배열로 가져옵니다.
    local partsArray = partsFolder:GetChildren()
  4. in ipairs(ArrayToUse)를 for 루프와 함께 사용하여 partsArray를 반복하고 입자를 추가합니다.

    완성된 스크립트

    -- PartsFolder에 있는 부품 목록을 배열로 가져옵니다.
    local partsArray = partsFolder:GetChildren()
    -- 배열의 모든 부품에 입자를 추가합니다.
    for index, part in ipairs(partsArray) do
    local particles = Instance.new("ParticleEmitter")
    particles.Parent = part
    end

플레이 테스트를 하고 폴더의 모든 부품에서 입자가 떠오르는 것을 지켜보세요.

요약

루프는 배열과 결합되어 많은 값으로 빠르게 작업할 수 있습니다. 몇 가지 부품에 대해 특정 동작의 정확한 제어가 필요하다면, 배열에는 특정 값이 하드 코딩되어 있어야 합니다.

순서가 중요하지 않은 많은 부품으로 작업하려면 GetChildren()을 사용하여 객체의 자식 목록을 배열로 만들 수 있습니다. ipairs()를 사용하면 배열의 크기를 알지 못하더라도 목록을 신속하게 반복할 수 있습니다.

©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.