ボタン式ドア
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オンラインコンパイラ