포 루프를 연습하기 위해, 점차 밝아졌다가 어두워지는 램프를 만들 것입니다. 이 스크립트는 프로젝트의 다른 조명에도 적용될 수 있습니다. 예를 들어, 가로등이나 빛나는 수정 등에 활용할 수 있습니다.
부품 및 스크립트 설정
램프는 조명과 스크립트가 연결된 부품이 될 것입니다.
조명을 쉽게 볼 수 있도록 3D 세계를 밤 시간으로 변경합니다. 탐색기 ⟩ 조명에서 ClockTime을 0으로 변경하세요.

Lamp라는 이름의 새 부품이나 모델을 만듭니다.

Lamp를 선택하고 조명(PointLight 또는 SpotLight 등)을 추가합니다. 조명의 밝기 속성을 사용하여 빛나는 램프를 만들 것입니다.

Lamp에서 GlowScript라는 이름의 새 스크립트를 추가합니다. 이 스크립트에서 램프 부품과 포인트 라이트를 저장할 변수를 만듭니다.
local lightPart = script.Parentlocal light = lightPart.SpotLight다음으로, 루프가 실행될 때마다 조명의 밝기가 얼마나 변경될지를 저장할 변수를 만듭니다. 또 다른 변수를 만들어 루프가 다시 실행되기 전에 몇 초를 기다릴지를 저장합니다.
-- 조명의 밝기가 어떻게 변할지local brightnessChange = 1-- 조명이 밝기를 변경하는 주기(초)local timeChange = 1
램프를 빛나게 하기
램프는 두 개의 포 루프를 사용할 것입니다. 하나는 램프를 밝게 하고, 다른 하나는 어둡게 합니다. 각 포 루프는 currentBrightness라는 제어 변수를 가집니다. 이 제어 변수가 올라가고 내려감에 따라 조명의 밝기도 변화합니다.
첫 번째 루프 (조명 증가)
포 루프는 키워드 for로 시작하고, 그 뒤에 제어 변수가 옵니다. 이 스크립트는 조명의 밝기 값을 제어 변수의 값으로 설정할 것입니다.
다음 값을 사용하여 for 루프를 코딩하세요. 제어 변수와 끝 값을 쉼표로 구분하는 것을 잊지 마세요.
- 제어 변수: currentBrightness
- 시작 값: 0
- 끝 값: 5
- 증가 값: brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendfor 루프의 범위 내에서 조명의 밝기 속성을 제어 변수에 있는 값으로 설정합니다. light.Brightness = currentBrightness를 입력하세요. 이렇게 하면 루프가 실행될 때 조명이 밝아집니다.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessend변화를 한 번에 모두 일어나는 것이 아니라 점진적으로 나타나도록, timeChange에 있는 값을 사용하여 대기 기능을 추가합니다.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)end경험을 실행하여 조명이 매초마다 밝아지는 것을 확인하세요.
첫 번째 루프에서 시간이 흐르면서 밝기가 변하는 것을 볼 수 없다면:
- light.Brightness = currentBrightness가 do와 end 사이에 있는지 확인하세요.
- timeChange가 최소 1 이상인지 확인하세요. 작은 숫자는 밝기가 더 빠르게 변하지만 시간이 지남에 따라 보기 어려울 수 있습니다.
- for 루프의 첫 번째 줄에 제어 변수, 끝 값 및 증가 값 간에 총 두 개의 쉼표가 있는지 확인하세요.
두 번째 루프 (조명 감소)
조명을 어둡게 하려면 두 번째 포 루프를 사용합니다. 이 루프의 값은 반대로 설정되어 조명이 밝게 시작한 후 매초 어두워집니다.
시간이 지남에 따라 밝기를 감소시키는 두 번째 for 루프를 코딩하세요. 해결책은 아래 코드 상자에 있습니다. 다음 값을 사용하세요:
- 제어 변수 - currentBrightness를 5로 설정, 이는 이전 루프의 끝입니다.
- 끝 - 0, 조명을 끄는 것입니다.
- 증가 - brightnessChange를 빼는 것입니다.
-- 두 번째 루프는 램프를 어둡게 합니다.for currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)end경험을 실행하세요; 조명이 밝아졌다가 어두워지는 것을 확인할 수 있을 것입니다.
조명이 반복되게 만들기
현재 조명은 한 번만 켜지고 꺼집니다. 램프가 계속해서 밝아지고 꺼지도록 하려면, 포 루프를 반복되는 while 루프 안에 배치합니다.
포 루프 아래에 새 while 루프를 만듭니다.
while true doend두 포 루프를 while 루프 안에 넣습니다. 식별할 수 있도록 포 루프를 들여쓰기하세요.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endend경험을 실행하여 조명이 계속 밝아지고 어두워지는 것을 확인하세요.
완성된 조명 스크립트
완성된 스크립트 버전은 아래에서 참조할 수 있습니다.
-- 이 램프에 연결된 조명을 저장합니다.lightPart = script.Parentlight = lightPart.SpotLight-- 조명의 밝기가 어떻게 변할지local brightnessChange = 1-- 조명이 밝기를 변경하는 주기(초)local timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- 조명을 끄기 위한 두 번째 루프for count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
요약
프로젝트에서 복잡한 효과를 만들기 위해 스크립트는 여러 루프와 다양한 유형의 루프를 조합하여 사용할 수 있습니다. 빛나는 조명을 코딩하기 위해 두 개의 루프가 while 루프 안에 중첩됩니다. 코더가 더 많은 루프를 추가하는 동안, 코드를 쉽게 읽을 수 있도록 들여쓰기를 확인하는 것이 중요합니다.