더북(TheBook)

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)이면 아래 조건문을 실행합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.