21 FirwBowl의 배치가 끝나면 FireBowl의 자식(Child)인 Bowl 파트와 Fire 파트의 속성 창에서 ‘고정(Anchored)’에 체크 표시하여 위치를 고정시킵니다. 위치를 고정하지 않으면 플레이할 때 전부 땅에 떨어지게 됩니다. 꼭 잊지 말고 두 파트를 모두 고정시키세요.
그림 5-27 | 속성 창에서 FireBowl 고정에 체크 표시
22 FireBowl의 배치가 끝나면 동굴 입구 근처에 발판용 블록 파트를 추가합니다. 파트의 이름을 ‘Switch’로 변경하고 스크립트를 추가합니다. 추가된 스크립트의 이름도 ‘Switch’로 변경하고 아래 코드를 입력합니다.
코드 | 파일명: Switch.lua
local switch = script.Parent --Swit Part를 switch 변수에 담기 local switchPressed = false --debounce Control 변수 function FireSwitch(player) --FireSwitch 함수 정의 local character = player.Parent --character 변수에 player 담기 --player가 "Humanoid"인지 판별 local humanoid = character:FindFirstChild("Humanoid") if humanoid .. nil then --humanoid 변수에 값이 있으면 아래 코드 실행 if not switchPressed then --switchPressed의 값이 참이 아니면 아래 코드 실행
switchPressed = true -- switchPressed를 true로 변경 local fire = Instance.new("Fire") --fire 변수에 Fire 담기 local light = Instance.new("PointLight") --light 변수에 PointLight 담기 --Fire 파트에 불 붙이기 fire.Parent = game.Workspace.FireBowl.Bowl.Fire --Bowl 파트에 PointLight 붙이기 light.Parent = game.Workspace.FireBowl.Bowl end end end switch.Touched:Connect(FireSwitch)
위 코드에서 첫 번째 if문의 조건은 humanoid의 변수가 nil이 아니면 즉, 값이 존재하면 코드 아래를 실행하게 됩니다. 두 번째 조건문은 switchPressed가 참(true)이 아니면(거짓, false)이면 아래 조건문을 실행합니다.