ボタン式ドア
CoddyのLuaジャーニー「Robloxゲームのスクリプティング」セクションの一部。レッスン 20/24。
赤いボタンには、ランプと同じようにClickDetectorがあります。Positionを設定すると、パーツは瞬時に移動します。滑らかに動かすには、TweenServiceを使います。パーツがどこに移動するか、そして移動にどれくらい時間がかかるかを指定すると、Robloxがアニメーションさせます。
local TweenService = game:GetService("TweenService")
local info = TweenInfo.new(2)
local goal = { Transparency = 1 }
local fade = TweenService:Create(workspace.Ghost, info, goal)
fade:Play()TweenInfo.new(2)は2秒を意味します。goalは、プロパティ名と最終的な値を格納したテーブルです。Createでトゥイーンを作成しますが、Playを呼び出すまで何も動きません。トゥイーンでは、数値、PositionやSizeのようなVector3値、そしてColor3の色を変更できます。
チャレンジ
中級木製のドアが壁の隙間をふさいでおり、赤いブロックはClickDetectorが付いたボタンです。このスクリプトはドアの中にあります。
ボタンがクリックされたら、ドアを1秒かけて10スタッド上にスライドさせます。infoとgoalの準備はできています。トゥイーンを作成し、MouseClickで再生してください。クリックされる前にドアが動いてはいけません。
Playを押し、ボタンのところまで歩いて行ってクリックし、通り抜けてください。その後、Checkを押してください。
自分で試してみよう
local TweenService = game:GetService("TweenService")
local door = script.Parent
local button = workspace.Button
local info = TweenInfo.new(1)
local goal = { Position = door.Position + Vector3.new(0, 10, 0) }
-- info と goal を使って door のトゥイーンを作成する
-- button の ClickDetector がクリックされたときに再生する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Robloxゲームのスクリプティングのすべてのレッスン
自分で練習してみよう: Luaオンラインコンパイラ