Skip to content

Tool ​

继承自:

描述 ​

会切换装备已有的工具

属性 ​

bool  CanBeDropped
可否丢弃道具,默认不可以丢弃
bool  Enabled
决定道具能否被使用,默认可以使用
Vector3  GripPos
夹点位置
Vector3  GripEuler
夹点的欧拉
string  ToolTip
道具提示信息
string  TextureId
默认快捷栏界面,显示的图标资源
bool  ActivationOnly
仅激活

函数 ​

已装备的的工具,模拟点击使用,会触发Activated事件。
模拟工具的结束使用。

事件 ​

SBXSignal  Activated ()
玩家已装备工具,点击鼠标左键时触发
SBXSignal  Deactivated ()
当鼠标左键松开时触发
SBXSignal  Equipped ()
当装备道具时触发
SBXSignal  Unequipped ()
当卸载道具时触发。

代码示例 ​

lua
--在StarterPack下新增一个Tool节点,Tool下新增一个Script节点,运行游戏,按1装备该Tool,鼠标点击空白处使用
local tool = script.Parent
tool.Equipped:Connect(function()
		print("Equipped----")
	end
)
tool.Unequipped:Connect(function()
		print("Unequipped----")
	end
)
tool.Activated:Connect(function()
		print("Activated----")
	end
)
tool.Deactivated:Connect(function()
		print("Deactivated----")
	end
)
tool.TouchBegin:Connect(function()
		print("onTouchBegin----")
	end
)
tool.TouchEnd:Connect(function()
		print("onTouchEnd----")
	end
)

 --以下示例是使用LocalPlayer的EquipTool,UnequipTools接口,装备指定Tool和卸下Tool 的示例。将其放到Tool下的Script节点里,按X装备该Tool,按Z卸下当前的装备(不管是不是该Tool节点)
 local tool = script.Parent
 local playersService = game:GetService("Players")
 local localPlayer = playersService.LocalPlayer

 local ContextActionService = game:GetService("ContextActionService")

 local function testEquipTool(actionName, inputState, inputObj)
	 if inputState == Enum.UserInputState.InputBegin.Value then
		 localPlayer:EquipTool( tool )
	 end
 end
 ContextActionService:BindAction(
	 "testEquipTool",
	 testEquipTool,
	 Enum.ContextActionType.KeyBoard.Value,
	 string.byte('X') )

 local function testUnequipTool(actionName, inputState, inputObj)
	 if inputState == Enum.UserInputState.InputBegin.Value then
		 localPlayer:UnequipTools()
	 end
 end

 ContextActionService:BindAction(
	 "testUnequipTool",
	 testUnequipTool,
	 Enum.ContextActionType.KeyBoard.Value,
	 string.byte('Z') )