Learn
Motor Sınıfı
ContextActionService
Oluşturulamaz
Hizmet

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.


Özet
Yöntemler
BindAction(actionName: string,functionToBind: function,createTouchButton: boolean,inputTypes: Tuple):()
BindActionAtPriority(actionName: string,functionToBind: function,createTouchButton: boolean,priorityLevel: number,inputTypes: Tuple):()
BindActionToInputTypes(actionName: string,functionToBind: function,createTouchButton: boolean,inputTypes: Tuple):()
Artık Kullanılmayan
BindActivate(userInputTypeForActivation: Enum.UserInputType,keyCodesForActivation: Tuple):()
SetDescription(actionName: string,description: string):()
SetImage(actionName: string,image: string):()
SetPosition(actionName: string,position: UDim2):()
SetTitle(actionName: string,title: string):()
UnbindAction(actionName: string):()
UnbindActivate(userInputTypeForActivation: Enum.UserInputType,keyCodeForActivation: Enum.KeyCode):()
Devralınan Üyeler
Kod Örnekleri
ContextActionService Araç Yenile
local ContextActionService = game:GetService("ContextActionService")
local ACTION_RELOAD = "Yenile"
local tool = script.Parent
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_RELOAD and inputState == Enum.UserInputState.Begin then
print("Yenileniyor!")
end
end
tool.Equipped:Connect(function()
ContextActionService:BindAction(ACTION_RELOAD, handleAction, true, Enum.KeyCode.R)
end)
tool.Unequipped:Connect(function()
ContextActionService:UnbindAction(ACTION_RELOAD)
end)

API Referansı
Yöntemler
BindAction
Capabilities: Input
ContextActionService:BindAction(
actionName:string, functionToBind:function, createTouchButton:boolean, inputTypes:Tuple
):()
Parametreler
actionName:string
functionToBind:function
createTouchButton:boolean
inputTypes:Tuple
Dönüşler
()
Kod Örnekleri
ContextActionService Araç Yenile
local ContextActionService = game:GetService("ContextActionService")
local ACTION_RELOAD = "Yenile"
local tool = script.Parent
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_RELOAD and inputState == Enum.UserInputState.Begin then
print("Yenileniyor!")
end
end
tool.Equipped:Connect(function()
ContextActionService:BindAction(ACTION_RELOAD, handleAction, true, Enum.KeyCode.R)
end)
tool.Unequipped:Connect(function()
ContextActionService:UnbindAction(ACTION_RELOAD)
end)
Genel Eylem İşleyici
local ContextActionService = game:GetService("ContextActionService")
local function handleAction(actionName, inputState, inputObj)
if inputState == Enum.UserInputState.Begin then
print("Handling action: " .. actionName)
print(inputObj.UserInputType)
end
-- Bu fonksiyon hiçbir şey döndürmediği için bu işleyici
-- girdiyi "batıracak" ve bu işleyiciden sonra başka eylem işleyicileri
-- çağrılmayacak.
end
ContextActionService:BindAction("BoundAction", handleAction, false, Enum.KeyCode.F)
Yığılı Eylem İşleyicileri
local ContextActionService = game:GetService("ContextActionService")
-- FirstAction için bir eylem işleyici tanımlayın
local function actionHandlerOne(actionName, inputState, _inputObj)
if inputState == Enum.UserInputState.Begin then
print("Eylem İşleyici Bir: " .. actionName)
end
-- Bu eylem işleyici nil döndürüyor, bu nedenle\n -- eylemi doğru şekilde işlediği varsayılır.
end
-- FirstAction eylemini bağlama (yığının en altında)
ContextActionService:BindAction("FirstAction", actionHandlerOne, false, Enum.KeyCode.Z, Enum.KeyCode.X, Enum.KeyCode.C)
-- SecondAction için bir eylem işleyici tanımlayın
local function actionHandlerTwo(actionName, inputState, inputObj)
if inputState == Enum.UserInputState.Begin then
print("Eylem İşleyici İki: " .. actionName)
end
if inputObj.KeyCode == Enum.KeyCode.X then
return Enum.ContextActionResult.Pass
else
-- Nil döndürmek, girdileri dolaylı olarak Batar\n return Enum.ContextActionResult.Sink
end
end
-- İlk eylemin üzerine SecondAction'ı bağlama (daha yeni bağlandığı için, yığının en üstünde)
-- Not: SecondAction aynı tuşları kullanıyor
ContextActionService:BindAction("SecondAction", actionHandlerTwo, false, Enum.KeyCode.Z, Enum.KeyCode.X)

BindActionAtPriority
Capabilities: Input
ContextActionService:BindActionAtPriority(
actionName:string, functionToBind:function, createTouchButton:boolean, priorityLevel:number, inputTypes:Tuple
):()
Parametreler
actionName:string
functionToBind:function
createTouchButton:boolean
priorityLevel:number
inputTypes:Tuple
Dönüşler
()
Kod Örnekleri
ContextActionService Eylem Bağlama Öncelikleri
local ContextActionService = game:GetService("ContextActionService")
local INPUT_KEY1 = Enum.KeyCode.Q
local INPUT_KEY2 = Enum.KeyCode.E
local function handleThrow(actionName: string, inputState: Enum.UserInputState, inputObject: InputObject)
if inputState ~= Enum.UserInputState.Begin then
return Enum.ContextActionResult.Pass
end
print(`Eylem [{actionName}] gerçekleşti. Anahtar Kodu [{inputObject.KeyCode}] basıldı.`)
return Enum.ContextActionResult.Sink
end
local function handlePunch(actionName: string, inputState: Enum.UserInputState, inputObject: InputObject)
if inputState ~= Enum.UserInputState.Begin then
return Enum.ContextActionResult.Pass
end
print(`Eylem [{actionName}] gerçekleşti. Anahtar Kodu [{inputObject.KeyCode}] basıldı.`)
return Enum.ContextActionResult.Sink
end
-- Öncelik belirtilmeden, en son bağlanan eylem ilk çağrılır,
-- bu nedenle INPUT_KEY1'e basmak "Punch" yazdırır ve ardından girişi düşürür.
ContextActionService:BindAction("DefaultThrow", handleThrow, false, INPUT_KEY1)
ContextActionService:BindAction("DefaultPunch", handlePunch, false, INPUT_KEY1)
-- Burada, yukarıdaki gibi her iki fonksiyonu aynı sırada bağlıyoruz,
-- ancak açık bir şekilde değiştirilmiş önceliklerle.
-- Yani, "Throw"'ya 2 daha yüksek bir öncelik veriyoruz,
-- böylece "Punch" hala daha yakın bir zamanda bağlı olsa bile ilk çağrılır.
-- INPUT_KEY2'ye basmak "Throw" yazdırır ve ardından girişi düşürür.
ContextActionService:BindActionAtPriority("PriorityThrow", handleThrow, false, 2, INPUT_KEY2)
ContextActionService:BindActionAtPriority("PriorityPunch", handlePunch, false, 1, INPUT_KEY2)

BindActionToInputTypes
Artık Kullanılmayan

BindActivate
Capabilities: Input
ContextActionService:BindActivate(
userInputTypeForActivation:Enum.UserInputType, keyCodesForActivation:Tuple
):()
Parametreler
userInputTypeForActivation:Enum.UserInputType
keyCodesForActivation:Tuple
Dönüşler
()

GetAllBoundActionInfo
Capabilities: Input
ContextActionService:GetAllBoundActionInfo():Dictionary
Dönüşler

GetBoundActionInfo
Capabilities: Input
ContextActionService:GetBoundActionInfo(actionName:string):Dictionary
Parametreler
actionName:string
Dönüşler

GetButton
Bekletir
Capabilities: Input
ContextActionService:GetButton(actionName:string):Instance
Parametreler
actionName:string
Dönüşler

GetCurrentLocalToolIcon
Capabilities: Input
ContextActionService:GetCurrentLocalToolIcon():string
Dönüşler

SetDescription
Capabilities: Input
ContextActionService:SetDescription(
actionName:string, description:string
):()
Parametreler
actionName:string
description:string
Dönüşler
()
Kod Örnekleri
ContextActionService Dokunma Butonu
local ContextActionService = game:GetService("ContextActionService")
local ACTION_INSPECT = "İncele"
local INPUT_INSPECT = Enum.KeyCode.E
local IMAGE_INSPECT = "rbxassetid://1826746856" -- ? içeren bir konuşma balonu resmi
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_INSPECT and inputState == Enum.UserInputState.End then
print("İnceleniyor")
end
end
-- Dokunmatik cihazlar için, 3. parametre aracılığıyla ekranda otomatik olarak bir buton oluşturulur
ContextActionService:BindAction(ACTION_INSPECT, handleAction, true, INPUT_INSPECT)
-- Butonu özelleştirmek için bu işlevleri kullanabiliriz:
ContextActionService:SetImage(ACTION_INSPECT, IMAGE_INSPECT)
ContextActionService:SetTitle(ACTION_INSPECT, "Bak")
ContextActionService:SetDescription(ACTION_INSPECT, "Bir şeyi incele.")
ContextActionService:SetPosition(ACTION_INSPECT, UDim2.new(0, 0, 0, 0))
-- Butonu doğrudan ContextActionService:GetButton kullanarak manipüle edebiliriz
local imgButton = ContextActionService:GetButton(ACTION_INSPECT)
if imgButton then -- Unutmayın: dokunmatik olmayan cihazlar hiçbir şey döndürmez!
imgButton.ImageColor3 = Color3.new(0.5, 1, 0.5) -- ImageButton'ı yeşil tonla
end

SetImage
Capabilities: Input
ContextActionService:SetImage(
actionName:string, image:string
):()
Parametreler
actionName:string
image:string
Dönüşler
()
Kod Örnekleri
ContextActionService Dokunma Butonu
local ContextActionService = game:GetService("ContextActionService")
local ACTION_INSPECT = "İncele"
local INPUT_INSPECT = Enum.KeyCode.E
local IMAGE_INSPECT = "rbxassetid://1826746856" -- ? içeren bir konuşma balonu resmi
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_INSPECT and inputState == Enum.UserInputState.End then
print("İnceleniyor")
end
end
-- Dokunmatik cihazlar için, 3. parametre aracılığıyla ekranda otomatik olarak bir buton oluşturulur
ContextActionService:BindAction(ACTION_INSPECT, handleAction, true, INPUT_INSPECT)
-- Butonu özelleştirmek için bu işlevleri kullanabiliriz:
ContextActionService:SetImage(ACTION_INSPECT, IMAGE_INSPECT)
ContextActionService:SetTitle(ACTION_INSPECT, "Bak")
ContextActionService:SetDescription(ACTION_INSPECT, "Bir şeyi incele.")
ContextActionService:SetPosition(ACTION_INSPECT, UDim2.new(0, 0, 0, 0))
-- Butonu doğrudan ContextActionService:GetButton kullanarak manipüle edebiliriz
local imgButton = ContextActionService:GetButton(ACTION_INSPECT)
if imgButton then -- Unutmayın: dokunmatik olmayan cihazlar hiçbir şey döndürmez!
imgButton.ImageColor3 = Color3.new(0.5, 1, 0.5) -- ImageButton'ı yeşil tonla
end

SetPosition
Capabilities: Input
ContextActionService:SetPosition(
actionName:string, position:UDim2
):()
Parametreler
actionName:string
position:UDim2
Dönüşler
()
Kod Örnekleri
ContextActionService Dokunma Butonu
local ContextActionService = game:GetService("ContextActionService")
local ACTION_INSPECT = "İncele"
local INPUT_INSPECT = Enum.KeyCode.E
local IMAGE_INSPECT = "rbxassetid://1826746856" -- ? içeren bir konuşma balonu resmi
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_INSPECT and inputState == Enum.UserInputState.End then
print("İnceleniyor")
end
end
-- Dokunmatik cihazlar için, 3. parametre aracılığıyla ekranda otomatik olarak bir buton oluşturulur
ContextActionService:BindAction(ACTION_INSPECT, handleAction, true, INPUT_INSPECT)
-- Butonu özelleştirmek için bu işlevleri kullanabiliriz:
ContextActionService:SetImage(ACTION_INSPECT, IMAGE_INSPECT)
ContextActionService:SetTitle(ACTION_INSPECT, "Bak")
ContextActionService:SetDescription(ACTION_INSPECT, "Bir şeyi incele.")
ContextActionService:SetPosition(ACTION_INSPECT, UDim2.new(0, 0, 0, 0))
-- Butonu doğrudan ContextActionService:GetButton kullanarak manipüle edebiliriz
local imgButton = ContextActionService:GetButton(ACTION_INSPECT)
if imgButton then -- Unutmayın: dokunmatik olmayan cihazlar hiçbir şey döndürmez!
imgButton.ImageColor3 = Color3.new(0.5, 1, 0.5) -- ImageButton'ı yeşil tonla
end

SetTitle
Capabilities: Input
ContextActionService:SetTitle(
actionName:string, title:string
):()
Parametreler
actionName:string
title:string
Dönüşler
()
Kod Örnekleri
ContextActionService Dokunma Butonu
local ContextActionService = game:GetService("ContextActionService")
local ACTION_INSPECT = "İncele"
local INPUT_INSPECT = Enum.KeyCode.E
local IMAGE_INSPECT = "rbxassetid://1826746856" -- ? içeren bir konuşma balonu resmi
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_INSPECT and inputState == Enum.UserInputState.End then
print("İnceleniyor")
end
end
-- Dokunmatik cihazlar için, 3. parametre aracılığıyla ekranda otomatik olarak bir buton oluşturulur
ContextActionService:BindAction(ACTION_INSPECT, handleAction, true, INPUT_INSPECT)
-- Butonu özelleştirmek için bu işlevleri kullanabiliriz:
ContextActionService:SetImage(ACTION_INSPECT, IMAGE_INSPECT)
ContextActionService:SetTitle(ACTION_INSPECT, "Bak")
ContextActionService:SetDescription(ACTION_INSPECT, "Bir şeyi incele.")
ContextActionService:SetPosition(ACTION_INSPECT, UDim2.new(0, 0, 0, 0))
-- Butonu doğrudan ContextActionService:GetButton kullanarak manipüle edebiliriz
local imgButton = ContextActionService:GetButton(ACTION_INSPECT)
if imgButton then -- Unutmayın: dokunmatik olmayan cihazlar hiçbir şey döndürmez!
imgButton.ImageColor3 = Color3.new(0.5, 1, 0.5) -- ImageButton'ı yeşil tonla
end

UnbindAction
Capabilities: Input
ContextActionService:UnbindAction(actionName:string):()
Parametreler
actionName:string
Dönüşler
()
Kod Örnekleri
ContextActionService Araç Yenile
local ContextActionService = game:GetService("ContextActionService")
local ACTION_RELOAD = "Yenile"
local tool = script.Parent
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_RELOAD and inputState == Enum.UserInputState.Begin then
print("Yenileniyor!")
end
end
tool.Equipped:Connect(function()
ContextActionService:BindAction(ACTION_RELOAD, handleAction, true, Enum.KeyCode.R)
end)
tool.Unequipped:Connect(function()
ContextActionService:UnbindAction(ACTION_RELOAD)
end)

UnbindActivate
Capabilities: Input
ContextActionService:UnbindActivate(
userInputTypeForActivation:Enum.UserInputType, keyCodeForActivation:Enum.KeyCode
):()
Parametreler
userInputTypeForActivation:Enum.UserInputType
keyCodeForActivation:Enum.KeyCode
Varsayılan değer: "Unknown"
Dönüşler
()

UnbindAllActions
Capabilities: Input
ContextActionService:UnbindAllActions():()
Dönüşler
()

Olaylar
LocalToolEquipped
Capabilities: Input
ContextActionService.LocalToolEquipped(toolEquipped:Instance):RBXScriptSignal
Parametreler
toolEquipped:Instance

LocalToolUnequipped
Capabilities: Input
ContextActionService.LocalToolUnequipped(toolUnequipped:Instance):RBXScriptSignal
Parametreler
toolUnequipped:Instance

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.