Roblox · Интерфейсы
На телефоне появляются круглые кнопки над прыжком: «Бег» и «Привет». На компьютере те же действия — на клавишах R и G. Одна строка — и у действия есть кнопка на экране.
Синим — что нужно создать.
StarterPlayer → StarterPlayerScripts
└─ MobileButtonsLocal (LocalScript)
Где: StarterPlayer → StarterPlayerScripts · LocalScript
Зачем: Кнопки «Бег» и «Привет».
-- игроки
local Players = game:GetService("Players")
-- действия: клавиша + кнопка на экране телефона
local CAS = game:GetService("ContextActionService")
-- этот игрок
local player = Players.LocalPlayer
-- бег
local RUN_SPEED = 24
-- шаг
local WALK_SPEED = 16
-- стандартное «помахать» R15
local WAVE_ID = "rbxassetid://507770239"
-- бежим?
local running = false
-- Humanoid персонажа
local function GetHumanoid()
-- персонаж
local character = player.Character
-- или nil
return character and character:FindFirstChildOfClass("Humanoid")
-- конец функции
end
-- кнопка «Бег»: включить / выключить
local function Run(_, state)
-- только нажатие
if state ~= Enum.UserInputState.Begin then return Enum.ContextActionResult.Pass end
-- Humanoid
local humanoid = GetHumanoid()
-- нет персонажа
if not humanoid then return Enum.ContextActionResult.Pass end
-- переключаем
running = not running
-- скорость
humanoid.WalkSpeed = running and RUN_SPEED or WALK_SPEED
-- надпись на кнопке
CAS:SetTitle("Run", running and "Шаг" or "Бег")
-- нажатие обработано
return Enum.ContextActionResult.Sink
-- конец функции
end
-- кнопка «Привет»
local function Wave(_, state)
-- только нажатие
if state ~= Enum.UserInputState.Begin then return Enum.ContextActionResult.Pass end
-- Humanoid
local humanoid = GetHumanoid()
-- анимации
local animator = humanoid and humanoid:FindFirstChildOfClass("Animator")
-- нет персонажа
if not animator then return Enum.ContextActionResult.Pass end
-- анимация
local animation = Instance.new("Animation")
-- какая
animation.AnimationId = WAVE_ID
-- машем
animator:LoadAnimation(animation):Play()
-- обработано
return Enum.ContextActionResult.Sink
-- конец функции
end
-- R на клавиатуре; true — кнопка на телефоне
CAS:BindAction("Run", Run, true, Enum.KeyCode.R)
-- надпись
CAS:SetTitle("Run", "Бег")
-- над кнопкой прыжка
CAS:SetPosition("Run", UDim2.new(0.72, -25, 0.2, -25))
-- G на клавиатуре
CAS:BindAction("Wave", Wave, true, Enum.KeyCode.G)
-- надпись
CAS:SetTitle("Wave", "Привет")
-- левее
CAS:SetPosition("Wave", UDim2.new(0.42, -25, 0.55, -25))
-- новый персонаж
player.CharacterAdded:Connect(function()
-- снова шагом
running = false
-- надпись
CAS:SetTitle("Run", "Бег")
-- конец функции
end)Запусти Play (или Run) и убедись: