매개 변수 연습 - 버튼

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

버튼은 플레이어가 새로운 영역을 잠금 해제하고, 포인트를 제공하고, 보물을 드러내는 데 사용할 수 있습니다.플레이어가 버튼을 터치할 때마다 플레이어가 색상을 변경하거나 소리를 내는 등 상호작용 중임을 알릴 수 있는 피드백을 제공해야 합니다.

이 예제에서는 버튼을 사용하여 브리지를 활성화합니다.버튼이 누르면 녹색이 되고 플레이어가 다리를 사용할 수 있게 됩니다.플레이어가 버튼을 누르지 않았다면, 그들은 그것을 걷으려고 할 때 다리를 통해 떨어질 것입니다.

다리 만들기

브리지를 설정하여 시작합니다.

  1. 플레이어가 다리가 필요한 게임의 영역을 만듭니다.

  2. 브릿지에 대한 부품을 만들고 이름을 Bridge로 변경합니다.

  3. 속성 창에서 다리를 선택합니다:

    • 투명도를 변경 .5로 변경합니다. 투명도에서 0은 표시되고 1은 표시되지 않습니다.
    • 확인 앵커 .
    • Uncheck CanCollide 를 해제합니다.
  4. 게임을 테스트하고, 다리는 흐릿해 보이고 사람들은 아직 그 위를 걸을 수 없어야 합니다.

버튼 생성

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

  1. 새로운 부품 버튼이라는 이름의 새 부품을 생성합니다.
  2. 버튼 색상을 빨강으로 변경합니다.
  3. 버튼을 앵커 합니다.
  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)

코드 문제 해결

문제: 게임이 시작될 때 브리지는 이미 굳어져 있습니다.: 부품이 고정되어 아무것도 만지지 않는지 확인하십시오.부품이 지형이나 다른 부품과 접촉하여 버튼Pressed() 함수가 실수로 발생할 수 있습니다. 문제: 출력 창에 오류가 표시되어 "브리지는 작업 영역의 유효한 멤버가 아닙니다"라고 말합니다. 팔로잉확인:

  • 브리지의 이름. 스크립트의 브리지는 탐색기와 동일하게 명명되어야 합니다.
  • part.Touched:Connect(buttonPressed)buttonPressed() 함수 밖에 있습니다.

선택적 코드 챌린지

이 단원의 스크립트는 플레이어를 특정 영역에서 제외하는 문을 유지하는 데에도 사용할 수 있습니다. 코딩 기술을 연습하고 팔로잉수행하십시오.

  • 문 부분 생성.
  • 문에서 더 멀리 버튼을 만듭니다.
  • 이 단원의 스크립트를 변경하여 문이 투명도를 변경하고 플레이어가 충돌할 수 없도록 합니다.

버전은 다음과 같이 보일 수 있습니다:


local button = script.Parent
-- 알림: 부품, 게이트의 이름을 프로젝트의 이름으로 바꾸십시오
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)