Tool

사용되지 않는 항목 표시

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

도구는 플레이어가 장착할 수 있는 Humanoid 개체의 도구입니다. 플레이어는 스크�

데스크톱숫자 키(1, 2, 3...)를 누르면 도구가 장비됩니다. 장비된 도구는 백스페이스를 눌러 작업 공간에 내려질 수 있

도구는 사용자 입력을 캡처하는 유일한 방법이 아닙니다. 또한 ContextActionService 및 Class.Tool.Unequipped|Unequipped

코드 샘플

Explode Tool Example

local tool = script.Parent
local function explode(point)
local e = Instance.new("Explosion")
e.DestroyJointRadiusPercent = 0 -- Make the explosion non-deadly
e.Position = point
e.Parent = workspace
end
local function onActivated()
-- Get the Humanoid that Activated the tool
local human = tool.Parent.Humanoid
-- Call explode with the current point the Humanoid is targetting
explode(human.TargetPoint)
end
tool.Activated:Connect(onActivated)
Sword Tool Example

local tool = script.Parent
local function onTouch(partOther)
-- First, try to see if the part we touched was part of a Humanoid
local humanOther = partOther.Parent:FindFirstChild("Humanoid")
-- Ignore touches by non-humanoids
if not humanOther then
return
end
-- Ignore touches by the Humanoid carrying the sword
if humanOther.Parent == tool.Parent then
return
end
humanOther:TakeDamage(5)
end
-- Trigger a slash animation
local function slash()
-- Default character scripts will listen for a "toolanim" StringValue
local value = Instance.new("StringValue")
value.Name = "toolanim"
value.Value = "Slash" -- try also: Lunge
value.Parent = tool
end
tool.Activated:Connect(slash)
tool.Handle.Touched:Connect(onTouch)

요약

속성

  • 병렬 읽기

    플레이어가 도구를 떨어뜨릴 수 있는지 여부를 제어합니다.

  • 병렬 읽기

    도구가 사용 가능한지 여부와 관련이 있습니다.

  • 병렬 읽기

    도구의 "손 덮개" 속성을 하나의 CFrame 로 저장합니다.

  • 숨김
    복제되지 않음
    병렬 읽기

    그립 R02 회전 매트릭스의 R12 값을 나타냅니다.

  • 숨김
    복제되지 않음
    병렬 읽기

    도구의 접합 매트리스의 위치 오프셋.

  • 숨김
    복제되지 않음
    병렬 읽기

    그립 R00 회전 매트릭스의 R10, R20 및 2>R202>값을 나타냅니다.

  • 숨김
    복제되지 않음
    병렬 읽기

    그립 R01 회전 매트릭스의 R11R21값을 나타냅니다.

  • ManualActivationOnly 속성은 Tool 를 실행하지 않고도 Tool:Activate() 를 실행할 수 있는지 여부를 제어합니다.

  • 병렬 읽기

    핸들이 없는 Tool 함수가 작동하는지 여부를 결정합니다.

  • 병렬 읽기

    플레이어의 마우스가 백팩에 있는 도구 위에 있을 때 표시되는 메시지를 제어합니다.

속성BackpackItem에서 상속되었습니다
  • TextureId:ContentId
    병렬 읽기

    플레이어 백팩에 있는 도구에 대해 표시되는 텍스처 아이콘입니다.

속성Model에서 상속되었습니다
  • 인스턴스 스트림이 활성화된 경험에 대한 모델의 세부 정보 수준을 설정합니다.

  • Class.Model|Models 인스턴스 스트림이 활성화된 경우 모델 스트림 동작을 제어합니다.

  • 병렬 읽기

    명시적으로 설정되지 않은 경우 Model 또는 nil입니다.

  • 복제되지 않음
    스크립팅할 수 없음
    병렬 읽기

    모델 주위의 피벗을 조정하는 편집기 전용 속성입니다. 이 속성을 설정하면 피벗이 있는 것처럼 Model/ScaleTo 가 호출됩니다.

  • 복제되지 않음
    병렬 읽기

    Class.Model의 피벗이 어디에 있는지 결정합니다. 이 피벗은 아님 이 세트에 있는 Model.PrimaryPart입니다.

속성PVInstance에서 상속되었습니다

메서드

  • Activate():void

    Class.Tool 의 활성화를 시뮬레이션합니다.

  • Deactivate():void

    Class.Tool 의 비활성화를 시뮬레이션합니다.

메서드Model에서 상속되었습니다
  • AddPersistentPlayer(playerInstance : Player):void

    이 모델을 지정된 플레이어에게 영구적으로 유지하도록 합니다. Model.ModelStreamingMode 는 추가를 결과로 변경하는 동안 PersistentPerPlayer 에 설정해야 합니다.

  • 모델의 모든 부분이 포함된 볼륨의 설명을 반환합니다.

  • Class.Model의 모든 Model를 포함하는 가장 작은 바인딩 상자의 크기를 반환합니다. Model.PrimaryPart가 설정된 경우 1>Class.Model1>와 함께.

  • 이 모델 개체가 지속되는 모든 Player 개체를 반환합니다. 동작은 이 메서드가 Script 또는 LocalScript에서 호출되는지에 따라 변경됩니다.

  • 새로 생성된 모델의 경우 기본적으로 1이 되지만 Model/ScaleTo 를 통해 크기를 조정하면 변경됩니다.

  • MoveTo(position : Vector3):void

    이동 하는 PrimaryPart 를 지정된 위치로. 주 부품이 지정되지 않은 경우 모델의 기본 부품이 사용됩니다.

  • RemovePersistentPlayer(playerInstance : Player):void

    이 모델은 더 이상 지속되지 않습니다. Model.ModelStreamingMode 는 제거된 플레이어의 동작에 대해 PersistentPerPlayer 로 설정해야 합니다.

  • ScaleTo(newScaleFactor : number):void

    모델의 크기 조정 요소를 설정하고, 모든 후손 인스턴스의 크기를 조정하여 크기 요소가 모델의 초기 크기와 위치에 비례하여 크기 요소가 1인 경우 모델의 크기를 조정합니다.

  • TranslateBy(delta : Vector3):void

    Class.Model을 주어진 Vector3 오프셋으로 이동하여 모델의 방향을 유지합니다. 다른 BasePart 또는 1>Class.Terrain1>이 이미 새로운 위치에 있으면 4>Class.Model4>는 해당 오프셋을

메서드PVInstance에서 상속되었습니다

이벤트

속성

CanBeDropped

병렬 읽기

CanBeDropped 속성은 플레이어가 Tool 를 드롭할 수 있는지 여부를 제어합니다.

이 경우, 백스페이스 버튼을 누르면 도구가 Workspace에 부모로 지정되고 플레이어의 Backpack에서 제거됩니다. 만약 이 경우에도 백스페이스를 누르면 도구가 장착되지 않고 유지됩니다.

Enabled

병렬 읽기

활성화된 속성은 플레이어가 도구를 사용할 수 있는지 여부와 관련이 있습니다. 이 기능은 플레이어가 도구를 사용하지 않도록 하려는 경우에 유용합니다. Tool 을 제거하려면 그들의 Backpack 에서 이 기능을 사용하지 않도록 하십시오.

설정된 경우 true 플레이어는 도구를 사용할 수 있습니다. 설정된 경우 false 도구는 비활성화되며 플레이어는 사용할 수 없습니다; 이렇게 하

코드 샘플

Superjump Tool

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local tool = Instance.new("Tool")
tool.Name = "SuperJump"
tool.RequiresHandle = false
tool.Parent = player.Backpack
function toolActivated()
humanoid.JumpPower = 150
tool.Enabled = false
task.wait(5)
tool.Enabled = true
humanoid.JumpPower = 50
end
tool.Activated:Connect(toolActivated)
tool.Unequipped:Connect(function()
humanoid.JumpPower = 50
end)

Grip

병렬 읽기

도구의 그립 속성은 도구를 단일 Grip 로 저장하지만 이 속성은 플레이어가 도구를 들고 있는 방식을 포함하며 Class.Tool.GripUp|GripUp ,</

코드 샘플

Grip Stick

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local tool = Instance.new("Tool")
tool.Name = "Stick"
tool.Parent = player.Backpack
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Parent = tool
handle.Size = Vector3.new(0.1, 3, 0.1)
handle.Color = Color3.fromRGB(108, 88, 75) -- Brown
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)

GripForward

숨김
복제되지 않음
병렬 읽기

캐릭터의 손에 도구의 방향을 지정하는 속성 중 하나입니다. 이는 그립 R02 , R12R22 값의 회전 매트릭스를 나타냅니다.

도구를 제어하는 다른 도구 속성에는 Tool.GripUp, Tool.GripRightTool.GripPos가 포함됩니다. 이 모든 속성은 단일 1> Datatype.CFrame1> 속에 저장된 4> Class.Tool.Grip

코드 샘플

Grip Stick

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local tool = Instance.new("Tool")
tool.Name = "Stick"
tool.Parent = player.Backpack
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Parent = tool
handle.Size = Vector3.new(0.1, 3, 0.1)
handle.Color = Color3.fromRGB(108, 88, 75) -- Brown
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)

GripPos

숨김
복제되지 않음
병렬 읽기

이 속성은 도구의 접합 매트릭스의 위치 오프셋을 제어합니다. 플레이어 캐릭터가 도구를 어떻게 들고 있는지 위치하는 데 사용되는 여러 속성 중 하나입니다.

도구를 보관하는 방법을 제어하는 다른 속성에는 Tool.GripUp, Tool.GripRightTool.GripForward가 포함됩니다. 이 모든 속성은 단일 속성 1> Datatype.CFrame1> 에 저장되어 있습

코드 샘플

Grip Stick

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local tool = Instance.new("Tool")
tool.Name = "Stick"
tool.Parent = player.Backpack
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Parent = tool
handle.Size = Vector3.new(0.1, 3, 0.1)
handle.Color = Color3.fromRGB(108, 88, 75) -- Brown
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)

GripRight

숨김
복제되지 않음
병렬 읽기

캐릭터의 손에 도구의 방향을 지정하는 속성 중 하나입니다. 이는 그립 R00 , R10R20값의 회전 매트릭스를 나타냅니다.

도구를 제어하는 다른 도구 속성에는 Tool.GripUp, Tool.GripForwardTool.GripPos가 포함됩니다. 이 모든 속성은 단일 1> Datatype.CFrame1> 속에 저장된 4> Class.Tool.Grip

코드 샘플

Grip Stick

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local tool = Instance.new("Tool")
tool.Name = "Stick"
tool.Parent = player.Backpack
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Parent = tool
handle.Size = Vector3.new(0.1, 3, 0.1)
handle.Color = Color3.fromRGB(108, 88, 75) -- Brown
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)

GripUp

숨김
복제되지 않음
병렬 읽기

캐릭터의 손에 도구의 방향을 지정하는 속성 중 하나입니다. 이는 그립 R01 , R11R21값의 회전 매트릭스를 나타냅니다.

도구를 제어하는 다른 도구 속성에는 Tool.GripRight, Tool.GripForwardTool.GripPos가 포함됩니다. 이 모든 속성은 1> Datatype.CFrame1> 속의 단일 4> Class.Tool.Grip4> 속

코드 샘플

Grip Stick

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local tool = Instance.new("Tool")
tool.Name = "Stick"
tool.Parent = player.Backpack
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Parent = tool
handle.Size = Vector3.new(0.1, 3, 0.1)
handle.Color = Color3.fromRGB(108, 88, 75) -- Brown
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)

ManualActivationOnly

병렬 읽기

ManualActivationOnly 속성은 스크립트에서 명시적으로 Tool를 호출하지 않고 Tool:Activate()를 활성화할 수 있는지 여부를 제어합니다.

설정을 참으로 설정하면 도구는 Tool.Activated 를 호출할 때만 Tool:Activate() 를 호출합니다. 이렇게 하면 ContextActionService:BindActivate() 함수가 억제됩니다.

클릭하면 도구가 장착되었을 때 Class.Tool.Activated 을 발사합니다. tool가 장착되지 않은 경우에는 발사하지 않습니다.

코드 샘플

Sprint Tool

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local tool = Instance.new("Tool")
tool.Name = "Sprint"
tool.RequiresHandle = false
tool.Parent = player:WaitForChild("Backpack")
function toolActivated()
humanoid.WalkSpeed = 30
tool.ManualActivationOnly = true
task.wait(5)
tool.ManualActivationOnly = false
humanoid.WalkSpeed = 16
end
tool.Activated:Connect(toolActivated)
tool.Unequipped:Connect(function()
humanoid.WalkSpeed = 16
end)

RequiresHandle

병렬 읽기

이 속성은 핸들이 없는 Tool 함수를 사용할 수 있는지 여부를 결정합니다.

도구에는 핸들이 있으면 핸들이라는 이름의 자식 부품이 있습니다. 핸들이 있는 도구는 일반적으로 플레이어가 핸들을 사용하여 개체를 들고 사용하도록 하는 경우가 많습니다. 핸들이 없는 도구는 일반적으로 비행 또는 소환 도구와 같은 개체를 사용

도구는 단순히 핸들을 사용하여 설정할 때만 작동합니다. 단순히 핸들을 사용하지 않고 설정할 때도 도구는 작동합니다.

ToolTip

병렬 읽기

ToolTip 속성은 플레이어의 MouseTool 에 마우스를 올 때 표시되는 메시지를 제어합니다.

일반적으로 이 속성의 값은 도구가 무엇인지 또는 도구 사용을 설명해야 합니다. 예를 인스턴스, 삽 도구의 경우 도구 팁을 다음과 같이 설정할 수 있습니다.


tool.ToolTip = "Shovel"

또는


tool.ToolTip = "Use to dig"

또는


tool.ToolTip = "Shovel - Use to dig"

메서드

Activate

void

이 함수는 Tool 을 활성화하는 것을 시뮬레이션합니다. 이 도구를 장착해야 이 함수가 작동합니다.


반환

void

코드 샘플

Invisibility Tool

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character
local tool = Instance.new("Tool")
tool.Name = "Invisibility Tool"
tool.RequiresHandle = false
tool.Parent = player.Backpack
local invisible = false
local function toolActivated()
if invisible then
return
end
invisible = true
for _, bodypart in pairs(character:GetChildren()) do
if bodypart:IsA("MeshPart") or bodypart:IsA("Part") then
bodypart.Transparency = 1
end
end
task.wait(3)
tool:Deactivate()
task.wait(1)
invisible = false
end
local function toolDeactivated()
if not invisible then
return
end
for _, bodypart in pairs(character:GetChildren()) do
if bodypart.Name ~= "HumanoidRootPart" then
if bodypart:IsA("MeshPart") or bodypart:IsA("Part") then
bodypart.Transparency = 0
end
end
end
end
local function toolEquipped()
tool:Activate()
end
tool.Equipped:Connect(toolEquipped)
tool.Activated:Connect(toolActivated)
tool.Deactivated:Connect(toolDeactivated)
tool.Unequipped:Connect(toolDeactivated)

Deactivate

void

이 함수는 Tool 의 비활성화를 시뮬레이션합니다. 이 도구를 장착해야 이 함수가 작동합니다.


반환

void

코드 샘플

Invisibility Tool

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character
local tool = Instance.new("Tool")
tool.Name = "Invisibility Tool"
tool.RequiresHandle = false
tool.Parent = player.Backpack
local invisible = false
local function toolActivated()
if invisible then
return
end
invisible = true
for _, bodypart in pairs(character:GetChildren()) do
if bodypart:IsA("MeshPart") or bodypart:IsA("Part") then
bodypart.Transparency = 1
end
end
task.wait(3)
tool:Deactivate()
task.wait(1)
invisible = false
end
local function toolDeactivated()
if not invisible then
return
end
for _, bodypart in pairs(character:GetChildren()) do
if bodypart.Name ~= "HumanoidRootPart" then
if bodypart:IsA("MeshPart") or bodypart:IsA("Part") then
bodypart.Transparency = 0
end
end
end
end
local function toolEquipped()
tool:Activate()
end
tool.Equipped:Connect(toolEquipped)
tool.Activated:Connect(toolActivated)
tool.Deactivated:Connect(toolDeactivated)
tool.Unequipped:Connect(toolDeactivated)

이벤트

Activated

이 이벤트는 플레이어가 장착한 동안 클릭하면 발생합니다. Tool 키가 클릭 중에 누르지 않은 경우에는 발생하지 않습니다.

이 이벤트는 플레이어가 도구를 사용할 때 일반적으로 액션을 수행하는 데 사용됩니다. 예를 들어, 로켓 발사기 무기 도구에서 로켓을 발사하는 등의 작업을 수행합니다.

아래 코드, LocalScript 에 배치되면 로컬 플레이어의 Backpack 에 도구를 생성하고, 생성된 도구를 장착하고 있는 동안 플레이어가 클릭하면 도구가 "활성화되었습니다"를 인쇄합니다.


local tool = Instance.new("Tool")
tool.RequiresHandle = false
tool.Parent = game.Players.LocalPlayer.Backpack
function onActivation()
print("Tool activated")
end
tool.Activated:Connect(onActivation)

Deactivated

이 이벤트는 플레이어가 클릭을 해제하면서 Tool 이 장비되고 활성화되면 발생합니다. 일반적으로 플레이어가 도구를 사용하지 않도록 하는 동작을 수행할 때 사용됩니다.

아래 코드, LocalScript 에 배치되면 로컬 플레이어의 Backpack 에 도구를 생성하고 도구가 장착되고 활성화된 상태에서 플레이어가 클릭을 발생시키면 도구 비활성화를 표시합니다.


local tool = Instance.new("Tool")
tool.RequiresHandle = false
tool.Parent = game.Players.LocalPlayer.Backpack
function toolDeactivated()
print("Tool deactivated")
end
tool.Deactivated:Connect(toolDeactivated)

Equipped

이 이벤트는 플레이어가 Tool (그들의 Backpack 에서) 장비하면 발생합니다.

이 이벤트의 반대, Tool.Unequipped ,는 플레이어가 백팩에 도구를 넣을 때 도구를 해제하는 시간을 결정하는 데 사용됩니다.

Class.Tool.RequiresHandle가 활성화되어 있고 핸들이 없으면 이 이벤트는 발생하지 않습니다.

매개 변수

mouse: Mouse

플레이어의 마우스.


코드 샘플

Print when a Player Equips a Tool

local Tool = script.Parent
local function onEquipped(_mouse)
print("The tool was equipped")
end
Tool.Equipped:Connect(onEquipped)

Unequipped

이 이벤트는 플레이어가 Tool (그것을 그들의 Backpack에 넣습니다) 을 해제하면 발생합니다.

이 이벤트의 반대, Tool.Equipped ,는 플레이어가 백팩에서 도구를 꺼내 장착할 때를 결정하는 데 사용됩니다.

Class.Tool.RequiresHandle가 활성화되어 있고 핸들이 없으면 이 이벤트는 발생하지 않습니다.