📘
【Roblox開発】TweenServiceを利用してフレームやボタンを移動させる方法
はじめに
今回はUIの要素をTweenService
で移動アニメーションを付与させる方法を解説します。
公式Reference
TweenService
でWorkspace上のPartなどを動かす方法はこちら
実装
UIを配置
実際の配置
フォルダ階層
Canvas
FirstFrame
Posision : {0.256, 0},{0.454, 0}
SecondFrame
Posision : {0.691, 0},{0.454, 0}
コード
StarterGui
にLocalScript
を配置
local TweenService = game:GetService("TweenService")
local canvas = script.Parent.ScreenGui.Canvas
local firstFrame = canvas.FirstFrame
local secondFrame = canvas.SecondFrame
local fisrtButton = canvas.FirstButton
local secondButton = canvas.SecondButton
fisrtButton.Activated:Connect(function()
--firstFrameをTweenServiceで縦に動かす
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local tween = TweenService:Create(firstFrame, tweenInfo, {Position = UDim2.new(0.256, 0, 0.2, 0)})
tween:Play()
end)
secondButton.Activated:Connect(function()
--secondFrameをTweenServiceで横に動かす
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local tween = TweenService:Create(secondFrame, tweenInfo, {Position = UDim2.new(0.1, 0, 0.454, 0)})
tween:Play()
end)
tweenInfo
で目的地まで動く時間と動き方を設定します。
tween
で動かすものとtweenInfo
、目的地の位置情報が含まれています。
tween:Play()
で実際に動かす感じになります。
UIの目的地指定方法について
FirstFrameの目的地指定方法について少し深ぼります。
FirstFrameの初期位置はPosision : {0.256, 0},{0.454, 0}
以下のコードで初期位置からY座標-0.254
を引いた位置に目的地を指定してる感じになります。
local tween = TweenService:Create(firstFrame, tweenInfo, {Position = UDim2.new(0.256, 0, 0.2, 0)})
以下の部分で目的地のUI座標を指定する感じです。
UDim2.new(0.256, 0, 0.2, 0)}
UDim2の公式Reference
実行!
Discussion