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

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

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

Lamp에 GlowScript라는 이름의 새 스크립트를 추가합니다. 그 스크립트에서 램프 부품과 포인트 조명을 저장할 변수를 만듭니다.
local lightPart = script.Parentlocal light = lightPart.SpotLight다음으로, 루프가 실행될 때마다 조명의 밝기가 얼마나 변할지를 저장할 변수를 만듭니다. 그런 다음, 루프가 다시 실행되기 전에 대기할 초 수에 대한 또 다른 변수를 추가합니다.
-- 조명의 밝기가 매번 얼마나 변할지local brightnessChange = 1-- 조명이 밝기를 변경하는 간격(초)local timeChange = 1
램프를 빛나게 만들기
램프는 두 개의 포문을 사용할 것입니다. 하나는 램프를 밝게 만들기 위해 카운트하고, 다른 하나는 어둡게 만들기 위해 카운트합니다. 각 포문은 currentBrightness라는 제어 변수를 가집니다. 이렇게 하면 포문의 제어 변수가 올라가고 내려감에 따라 조명의 밝기도 변합니다.
첫 번째 루프 (조명 증가)
포문은 for라는 키워드로 시작하고 그 뒤에 제어 변수가 옵니다. 이 스크립트는 조명의 밝기 값을 제어 변수의 값으로 설정합니다.
다음 값을 사용하여 포문을 코딩합니다. 제어 변수와 종료 값을 쉼표로 구분하는 것을 잊지 마세요.
- 제어 변수: currentBrightness
- 시작 값: 0
- 종료 값: 5
- 증가 값: brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doend포문의 범위 내에서 조명의 밝기 속성을 제어 변수의 값으로 설정합니다. 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 이상인지 확인하세요. 작은 숫자는 밝기가 더 빨리 변하게 하지만 시간이 지남에 따라 보기 어려울 수 있습니다.
- 포문의 첫 번째 줄에 제어 변수, 종료 값 및 증가 값을 구분하는 두 개의 쉼표가 있는지 확인하세요.
두 번째 루프 (조명 감소)
조명을 어둡게 하려면 두 번째 포문을 사용합니다. 이 루프의 값은 반대로 설정되어 조명이 밝게 시작하고 매초 어두워집니다.
시간이 지남에 따라 밝기를 줄이는 두 번째 포문을 코딩합니다. 아래 코드 상자에 해결책이 있습니다. 다음 값을 사용하세요:
- 제어 변수 - currentBrightness를 5로 설정합니다. 이는 마지막 루프의 끝입니다.
- 종료 - 0, 조명을 끄는 것입니다.
- 증가 - brightnessChange를 빼는 것입니다.
-- 두 번째 루프는 램프를 어둡게 합니다for currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)end게임을 실행하세요. 조명이 밝아졌다가 어두워지는 것을 볼 수 있어야 합니다.
조명이 반복되도록 만들기
현재 조명은 한 번만 켜졌다 꺼집니다. 램프가 계속해서 켜졌다 꺼지도록 하려면 포문을 반복하는 while 루프 안에 배치해야 합니다.
포문 아래에 새 while 루프를 만듭니다.
while true doend두 개의 포문을 while 루프 안에 배치합니다. 포문을 들여쓰기하여 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.Parent
light = lightPart.SpotLight
-- 조명의 밝기가 매번 얼마나 변할지
local brightnessChange = 1
-- 조명이 밝기를 변경하는 간격(초)
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- 조명을 끄는 두 번째 루프
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
end요약
프로젝트에서 복잡한 효과를 만들기 위해 스크립트는 여러 개의 루프와 다양한 유형의 루프 조합을 사용할 수 있습니다. 빛나는 조명을 코딩하기 위해 두 개의 루프가 while 루프 안에 중첩되어 있습니다. 코더가 더 많은 루프를 추가할 때는 코드가 읽기 쉽도록 들여쓰기를 확인해야 합니다.