경험 내 도구

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

경험 내 Tools 사용자가 세션에 장착할 수 있는 상호 작용 도구로, 검, 로켓 발사기 및 마법 지팡이와 같습니다.사용자를 위해 사용자 정의된 경험 내 도구를 만들고, 경험 계층에 배치하고, 사용자를 위해 구현하기 위한 스크립트를 작성할 수 있습니다.

경험 내 도구 생성

경험 내 도구를 처음 만드는 단계에서는 도구 개체를 생성하여 도구를 구성하는 모든 요소를 포함해야 합니다 create a tool object.그런 다음 부품과 메쉬, 사운드 효과 및 기능을 제공하는 스크립트를 포함하여 도구 개체에 다른 인스턴스를 추가할 수 있습니다.또한 도구 핸들을 설정하고 도구 그립을 조정하며 도구 아이콘을 사용자 지정하여 사용자 경험을 개선할 수 있습니다.

도구 개체 생성

다음 단계로 새 도구 개체를 생성할 수 있습니다:

  1. 탐색기 창에서 작업 공간을 호버하고 ⊕ 버튼을 클릭하여 개체 목록을 표시합니다.

  2. 상호 작용 카테고리 아래에서 도구를 선택합니다.

부품 또는 메쉬 추가

도구 개체를 만든 후에는 도구 모델에 Parts 또는 MeshParts 를 추가하거나 부품과 메쉬가 없는 도구를 인벤토리 아이템으로 만들어 생성해야 합니다.다른 모델과 마찬가지로, 경험 도구는 여러 개의 Parts로 구성될 수 있으므로 제약 조건 Weld을 사용하여 도구의 모든 부분을 연결해야 합니다.

부품이나 메쉬를 추가하지 않고 도구를 생성하려면 그것을 인벤토리 아이템으로 만들 수 있습니다.

도구 핸들 설정

사용자가 도구를 들고 다닐 수 있도록 하려면 Part를 설정하고 이름을 Handle로 지정하여 사용자의 손에 연결해야 합니다.다음 예제에서는 빛나는 팁, 메인 신체및 빨간색 핸들이 있는 마법봉을 보여줍니다.사용자가 지팡이를 장착하면, 이름이 PartHandle 에 그것을 유지합니다.

단지 하나의 Class.Part``Handle 을 가지고 있는지 확인하십시오.여러 개의 Parts 를 이름으로 지정하면 Handle 에서 도구가 무작위로 그 중 하나를 선택하여 사용자가 도끼 대신 검의 칼을 들고 있는 문제와 같은 문제를 일으킬 수 있습니다.

도구 그립 오리엔테이션 조정

도구의 그립 방향이 잘못되었으면, 예를 들어 지면에서 끌거나 뒤로 향하면 그립 속성을 조정하여 외관 카테고리의 속성 창에서 수정할 수 있습니다.

각 도구에 대한 이상적인 그립 방향이 다르기 때문에, 도구의 그립이 올바르게 보이기 전까지 그립포워드 , 그립라이트 , 및 그립업 속성을 변경하여 실험해야 합니다.다음 예제에서는 마법봉에 대한 가능한 잘못된 그립과 올바른 그립을 보여줍니다:

지상에서 도구 끌기
>

도구가 뒤로 향하게 됩니다
>

도구 중심으로 올바르게 지향되었습니다

사용자 캐릭터를 활성화하여 도구를 손에서 상쇄할 수도 있습니다. GripPos 속성.사용자의 어깨에 쉴 것처럼 보이는 도구를 만들 때 유용할 수 있습니다.

기본 오프셋(0,0,0)
>

어깨에 도구 오프셋
>

도구 아이콘 사용자 정의

사용자가 소유하는 도구는 그들의 에 저장됩니다. 사용자는 액션 바에서 백팩에 있는 각 도구의 아이콘을 볼 수 있습니다.

도구의 속성 창에서 다음 속성을 사용하여 작업 표시줄에서 도구의 모양을 사용자 지정합니다.

  • TextureID — 도구 아이콘. 이 속성에 대한 이미지 ID를 데칼과 이미지 버튼과 동일하게 설정합니다.
  • 도구 설명 — 마우스를 올린 도구 설명 이름.

도구를 드롭하도록 사용자 활성화 및 비활성화

기본적으로 사용자는 Windows에서 백스페이스 키를 누르거나 Mac에서 삭제 키를 누르면 도구를 드롭할 수 있습니다.도구의 CanBeDropped 속성을 으로 설정하여 이 옵션을 비활성화할 수 있습니다.만약 CanBeDroppedfalse 이면, 백스페이스 또는 삭제 를 누르면 도구가 사용자의 배낭으로 돌아갑니다.

인벤토리 아이템으로 도구 생성

부품이나 메쉬가 없는 경험 내 도구를 사용자 입력을 기다리는 인벤토리 아이템으로 만들어 사용자 캐릭터가 다른 사용자를 클릭하거나 화면을 터치하여 마법의 주문을 던질 수 있습니다.인벤토리 아이템 도구에는 핸들이 필요하지 않으므로 도구의 요구 핸들 속성을 해제해야 합니다. 속성 창에서.

경험에 도구 추가

경험 내 도구 설정을 완료한 후에는 경험의 개체 계층 구조에서 적절한 영역에 배치해야 합니다.경험의 개체 계층 내에 도구를 배치하는 위치는 사용 의도에 따라 달라집니다.

기본 시작 도구

모든 사용자가 인벤토리에 있는 도구로 시작하길 원하면 스타터 팩 폴더에 넣으십시오.사용자가 생성될 때마다 시스템은 도구를 백팩에 복사합니다.

수집 도구

사용자가 이동하는 동안 도구를 수집할 수 있도록 허용하려면 작업 영역 에서 탐색기 계층에 도구를 배치할 수 있습니다.예를 들어, 경험 세계의 어려운 영역에 슈퍼 로켓 발사기를 배치하고 싶을 수 있습니다.

획득 및 구매한 도구

사용자가 특별한 작업을 수행하거나 경험 상점에서 판매할 때 도구를 상으로 설정하려는 경우, 적절한 시기에 사용자의 백팩에 도구를 복제할 수 있는 서버 저장소 계층 내에 탐색기 구조에 도구를 넣으십시오.

도구 효과 추가

경험에 도구를 추가한 후 사용자가 도구를 사용하여 특수 효과를 수행할 수 있도록 스크립트를 추가할 수 있습니다.

도구별 이벤트

도구 스크립트에서 도구의 상태와 사용자의 입력을 나타내는 다음 네 가지 도구 특정 조건을 사용할 수 있습니다.

  • Tool:Equipped() : 사용자가 백팩에서 도구를 선택할 때 발생합니다.

  • Tool:Unequipped() : 사용자가 도구를 드롭하거나 도구를 전환할 때 발생합니다.

  • Tool:Activated() : 사용자가 도구 활성화를 시작할 때 (게임패드에서 A 을 클릭하거나 탭하거나 누름) 발생합니다.

  • Tool:Deactivated() : 사용자가 활성화 입력을 중지할 때(버튼 또는 터치 릴리스) 발생합니다.

도구를 디자인할 때 네 가지 조건이 모두 필요하지 않을 수도 있지만 다음 코드 스크립트를 기본 도구 스크립트 템플릿으로 사용할 수 있습니다.


local tool = script.Parent
local function onEquip()
print("The tool is now equipped.")
end
local function onUnequip()
print("The tool is now unequipped.")
end
local function onActivate()
print("The tool is now activated.")
end
local function onDeactivate()
print("The tool is now deactivated.")
end
tool.Equipped:Connect(onEquip)
tool.Unequipped:Connect(onUnequip)
tool.Activated:Connect(onActivate)
tool.Deactivated:Connect(onDeactivate)

이 코드 샘플은 스크립트가 도구 개체 내의 최상위 자식임을 가정합니다.스크립트가 다른 곳에 있는 경우 줄 1(tool의 값)에서 경로를 조정하여 핵심 도구 개체를 가리킵니다.

기본 스크립트 추가

다음 예시에서는 사용자가 화면을 클릭하여 낮과 밤을 전환할 수 있는 마법봉을 장착하도록 서버에 Script를 추가하는 단계를 보여줍니다.

  1. 탐색기 창에서 도구 개체 위로 마우스를 이동하고 버튼을 클릭하여 Script를 삽입합니다.

  2. 다음 코드를 복사하여 Script 에 붙여넣으세요.


    local Lighting = game:GetService("Lighting")
    local tool = script.Parent
    local function onActivate()
    if Lighting.ClockTime >= 8 and Lighting.ClockTime < 16 then
    Lighting.ClockTime = 20
    else
    Lighting.ClockTime = 8
    end
    end
    tool.Activated:Connect(onActivate)
  3. 도구를 집어 들고 경험의 화면에서 아무데나 클릭하여 낮과 밤 사이를 전환하여 경험을 플레이테스트하십시오:

도구 구현에 대한 다양한 유형의 스크립트

일부 도구는 이전 예제와 같이 서버에서 Script만 구현하면 되지만, 대부분의 도구는 서버와 클라이언트 모두에서 ScriptLocalScript를 모두 구현해야 하며, 각각 도구의 동작에 대한 특정 측면을 처리합니다.

스크립트를 추가하기 전에 각 스크립트 입력간의 핵심 차이를 이해했는지 확인하십시오:

  • 스크립트 는 모든 사용자가 볼 수 있는 전체 경험 세계 내의 변경을 관리하며, 문을 열고 화살을 발사하는 것과 같이 모든 사용자에게 보이는 변경을 처리합니다.
  • LocalScript 는 사용자 기기발생하는 일, 예를 들어 화면을 터치하거나 클릭한 위치를 감지하는 것을 관리합니다.

다음은 로컬 스크립트 또는 서버 스크립트에서 관리하는 몇 가지 예제 도구와 그 동작입니다.

도구로컬 스크립트서버 스크립트
크리에이터의 지팡이플레이어가 화면을 터치하거나 클릭하는 위치를 감지합니다.플레이어가 터치하거나 클릭한 게임 월드 내의 위치에서 새 부품을 생성합니다.
투명화 망토망토를 장착한 상태에서 플레이어를 모든 다른 사용자에게 일시적으로 보이지 않게 만듭니다.
메가-보우플레이어가 도구를 활성화하는 시간(활성화와 비활성화 사이의 시간)을 감지합니다.감지된 활성화 시간에 따라 더 강력하거나 약한 마법의 화살을 발사합니다.

다양한 스크립트 유형에 대한 자세한 정보는 스크립트를 참조하십시오.

문제 해결 팁

Studio에서는 도구가 작동할 수 있지만 라이브 Roblox 경험에서는 작동하지 않을 수 있습니다. 이 문제가 발생하면 문제 해결을 위해 다음 팁을 사용하십시오.

  • LocalScriptsScripts 는 서로 직접 듣지 못하므로 두 스크립트 사이에 메시지를 보내기 위해 RemoteEvent 을 추가해야 합니다.
  • ScriptLocalScript 는 해야 할 일을 정확히 처리하도록 하십시오.

자세한 내용은 RemoteEvents에 참조하십시오 원격 이벤트 및 콜백.