In Roblox Studio の紹介 で、Roblox Studio のパーツを作成および操作する方法を学びました。このチュートリアルでは、スクリプトを パーツに適用 してプラットフォームを表示および非表示にする方法を学びます。これをプラットフォーミングエクスペリエンスで使用して、ユ
シーンの設定
まオフ、 パーツ がプラットフォームとして機能するために必要です。パーツを作成および移動することは、Roblox Studio の紹介 からあなたに熟慣されている必要がありません。プラットフォーム以外の複雑な世界は必要ありません - ユーザーが簡単にジャンプできない亀裂が必要です。
パーツ を挿入し、DisappearingPlatform に名前を変更します。
ユーザーがジャンプできるように、サイズを大きくします。
適切な場所に移動することで、エクスペリエンスのテスト中にジャンプしてアクセスできるようになります。
プロパティの アンカー プロパティを true プロパティに設定します。
スクリプトの挿入
Roblox のコードは、 Luau という言語で書かれており、 Explorer 内のさまざまなコンテナ内のスクリプトに入れることができます。 Part の下にスクリプトを配置すると、Roblox はスクリプトのコードを実行します。
エクスプローラ ウィンドウの DisappearingPlatform 部分の上にマウスポイントを置き、 + ボタンをクリックしてプラットフォームに新しいスクリプトを挿入します。新しいスクリプトを 1>Disappear1> と名前付けします。
内部のデフォルトコードを削除します。
最初の変数
プラットフォームの 変数 を作成してスクリプトを開始するのが良いです。変数は 名前 でプラットフォームに関連付けられます。一度変数が作成されると、再び使用できます。必要に応じて値を変更できます。
In Luau、変数は以下のように作成されます: local variableName = variableValue 。
local は、スクリプトのブロックで宣言される変数のみに使用されることを意味します。= サインは、変数の値を設定するために使用されます。変数の名前は通常 キャメルケース で書きます。これは、最初の文字が大文字で書かれている
次のコードをコピーして、platform というプラットフォームの platform を作成します、script.Parent の値は 2> player.Script.Parent2> です。
local platform = script.Parent
機能を非表示にする
プラットフォームを消滅させる時間です。コードをグループ化するのが常に最善です。コードは、 関数 にまとめて、特定のアクションを複数の場所で実行するために、書き直さなくてもよい名前のブロックです。スクリプトで 関数 を作成し、disappear。
local platform = script.Parent
local function disappear()
end
最初の新しい行 機能を宣言します 機能の開始を指し、disappear と名前を付けます。機能のコードは、最初の行と end の間にあります。
括弧は、必要に応じて追加の情報を含めるために使用されます。後で機能に情報を伝達する方法について説明します。
パーツプロパティ
プラットフォームが消えると、見えなくなる必要があり、ユーザーはそれを通過する必要があります — しかし、プラットフォームを再び表示する必要があるため、プラットフォームを単に破壊することはできません。
パーツには、ここで使用できるさまざまな プロパティ があります。パーツを選択し、プロパティ ウィンドウを表示すると、パーツのプロパティを見ることができます。
パーツを透明にするには、Transparency プロパティを変更することでパーツを見えなくできます。透明度は 0 から 1 の間の値で、1 は完全に透明であり、ですから見えなくなります。
CanCollide プロパティは、他のパーツ (およびユーザー) がパーツを通過できるかどうかを決定します。 false に設定すると、ユーザーはプラットフォームを落ちてしまします。
プロパティは、<a href="/reference/engine/datatypes">データタイプ</a>、値は <a href="/reference/engine/datatypes">等号を使用して割り当てられます。
In the disappear 関数, プラットフォームの CanCollide プロパティを false に設定します。
フォロー中の行で、Transparency プロパティを 1 に設定します。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1end
関数を呼び出す
機能を宣言したら、親切号の後に名前を書いて実行できます。たとえば、 disappear() は disappear 関数を実行します。これは、呼び出し 機能を呼び出すことで知られています。
コールする スクリプトの終わりに disappear 関数を呼び出します。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1enddisappear()コードをプレイボタンを押すことでテストします。コードが機能すると、プラットフォームはユーザーがゲームにスポーンする時に消えるでしょう。
機能を出現
あなたは disappear 関数の正反対を行う機能を作成することで、プラットフォームを簡単に再び表示させることができます。
スクリプトから disappear() 行を削除します。
新しい関数を appear として宣言します。
機能ボディで、CanCollide プロパティを CanCollide とし、 Transparency プロパティを 2> 12> に設定します。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1endlocal function appear()platform.CanCollide = trueplatform.Transparency = 0end
ループコード
プラットフォームは常に消えたり再び現れたりし、その間に数秒間のセグメントがあります。無限な機能コールを書くことは不可能ですが、 while ループ で、そうする必要はありません。
コードを mientras の後、while の後に、および true が真実である限り、コードをループします。この特定のループは、2> while2> が終了するまで、ステートメントが5> true5>でなければなりません。スクリプトの終わりに 8> while true8> ループを作成
local platform = script.Parent
local function disappear()
platform.CanCollide = false
platform.Transparency = 1
end
local function appear()
platform.CanCollide = true
platform.Transparency = 0
end
while true do
end
プラットフォームを切り替える
while ループ中、プラットフォームが消えてから再び表示されるまでの数秒間、コードを書き込む必要があります。
内蔵関数 task.wait() はこれに使用できます。親引き数は、例えば task.wait(3) です。
3秒は、各プラットフォームステート間の時間長の合理的な開始点です。
- while ループ中、 task.wait() 関数を呼び出し、 3 を親引きしています。
- disappear 関数を呼び出します。
- コール関数を再び task.wait() に 3 を入れて、親オープンします。
- appear 関数を呼び出します。
while true dotask.wait(3)disappear()task.wait(3)appear()end
プラットフォームのコードが完了しました!コードをテストして、プラットフォームが 3 秒後に 3 秒後にリロードされることを確認してください。
このプラットフォームを複製して、より広いギャップをカバーすることができますが、各スクリプトで待ち時間を変更する必要があります。そうしないと、プラットフォームはすべて同時に失敗し、ユーザーはクロスできません。
最終コード
local platform = script.Parent
local function disappear()
platform.CanCollide = false
platform.Transparency = 1
end
local function appear()
platform.CanCollide = true
platform.Transparency = 0
end
while true do
task.wait(3)
disappear()
task.wait(3)
appear()
end