매개변수 연습 - 버튼

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

버튼은 플레이어가 새로운 지역을 잠금 해제하거나, 포인트를 얻거나, 보물을 드러내는 데 사용할 수 있습니다. 플레이어가 버튼을 만질 때마다, 버튼이 상호작용되고 있음을 알려주기 위해 색상을 변경하거나 소리를 내는 등 피드백을 제공해야 합니다.

이 예제에서 버튼은 다리를 활성화하는 데 사용됩니다. 버튼이 눌리면 초록색으로 변하고, 플레이어는 다리를 사용할 수 있습니다. 플레이어가 버튼을 누르지 않으면, 그들이 다리를 걷으려고 할 때 떨어질 것입니다.

다리 만들기

먼저 다리를 설정합니다.

  1. 플레이어가 다리가 필요한 지역을 환경에서 만듭니다.

  2. 다리를 위한 파트를 만들고 이름을 다리(Bridge)로 변경합니다.

  3. 다리를 선택하고 속성(Properties) 창에서:

    • **투명도(Transparency)**를 .5로 변경합니다. 투명도에서 0은 보이고, 1은 보이지 않습니다.
    • **고정(Anchor)**에 체크합니다.
    • **충돌 가능(CanCollide)**의 체크를 해제합니다.
  4. 경험을 테스트할 때, 다리는 안개가 낀 것처럼 보여야 하며, 사람들은 아직 그 위를 걸을 수 없어야 합니다.

버튼 만들기

이제 다리가 설정되었으니 버튼을 만듭니다.

  1. _버튼(Button)_이라는 새 파트를 만듭니다.

  2. 버튼 색상을 빨간색으로 변경합니다.

  3. 버튼을 **고정(Anchor)**합니다.

  4. 버튼이 조금 떠서 아무것도 만지지 않도록 이동합니다. 이는 Touched 이벤트가 우연히 발생하지 않도록 하기 위함입니다.

버튼을 상호작용 가능하게 만들기

이번에는 Touched 이벤트를 사용하여 함정을 만드는 대신, 이를 사용하여 다리를 사용할 수 있는 버튼을 만듭니다. 다리를 충돌 가능하게 만들기 위해, 플레이어가 버튼을 만질 때 실행되는 사용자 정의 함수 안에 bridge.CanCollide = true 코드를 사용합니다. 다음 단계를 완료하기 위해 필요한 모든 내용은 이미 알고 있습니다.

코드 솔루션을 보기 전에 혼자서 해결해 보세요.

  1. 버튼에 _ActivateBridge_라는 새 스크립트를 삽입합니다.
  2. Hello World를 삭제합니다.
  3. 다리와 버튼을 위한 변수를 만듭니다.
  4. 버튼이 만져졌을 때 다음 작업을 수행하는 로컬 함수를 만듭니다:
    • "button touched"를 출력합니다.
    • 버튼이 눌리면 색상을 빨간색에서 초록색으로 변경합니다.
    • 다리의 투명도를 0으로 변경하여 보이게 합니다.
    • 코드 bridge.CanCollide = true를 사용하여 다리를 사용할 수 있게 만듭니다.
  5. 함수를 버튼의 Touched 이벤트에 연결합니다.
  6. 스크립트를 테스트하고 버튼을 만질 때 다리가 나타나는지 확인합니다.

코드 솔루션 아래는 가능한 코드 솔루션 중 하나입니다.


-- 이 스크립트를 버튼에 삽입합니다.
-- 버튼에 무언가가 닿을 때 버튼을 초록색으로 변경합니다.
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("button touched")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)

코드 문제 해결

문제: 경험을 시작할 때 다리가 이미 단단합니다. 부품들이 고정되어 있고 아무것도 만지지 않는지 확인하세요. 부품들이 지형이나 다른 부품을 만져 buttonPressed() 함수가 우연히 실행될 수 있습니다.

문제: 출력 창에서 "Bridge is not a valid member of Workspace"라는 오류가 발생합니다. 다음을 확인하세요:

  • 다리 이름이 정확한지. 스크립트에서 다리는 탐색기에서와 정확히 같은 이름이어야 합니다.
  • part.Touched:Connect(buttonPressed)buttonPressed() 함수 외부에 있는지 확인합니다.

선택적 코드 도전

이번 수업의 스크립트는 플레이어가 특정 지역에 들어가지 못하도록 하는 문을 유지하는 데에도 사용할 수 있습니다. 코딩 기술을 연습하고 다음 작업을 수행하세요:

  • 문 부분을 만듭니다.
  • 문에서 멀리 떨어진 곳에 버튼을 만듭니다.
  • 이 수업의 스크립트를 변경하여 문이 투명도를 변경하고 플레이어가 문과 충돌하지 못하게 만듭니다.

당신의 버전은 다음과 비슷할 수 있습니다:


local button = script.Parent
-- 주의: 부품의 이름을 Gate에서 프로젝트의 이름으로 바꾸세요
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- 플레이어에게 피드백을 주기 위해 버튼을 빨간색으로 변경합니다
button.BrickColor = BrickColor.Red() -- 여기를 변경하세요
-- 문을 보이지 않게 만듭니다
gate.Transparency = 1
-- 플레이어가 문을 통과할 수 있도록 만듭니다
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)
©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.