In スクリプト入門 では、時間をかけてループでエクスペリエンスの変更を行う方法を学びました。ユーザーの行動に基づいて変更を加えたい場合はどうすればよいでしょうか?このチュートリアルでは、歩くとユーザーを殺す致命的な溶岩フロアを作る方法を学びます。
設定する
致命的な溶岩を置くための場所が世界に必要です。スクリプトの紹介コースをフォローした場合、溶岩フロアは消失するプラットフォームで覆われたギャップにぴったりはまります。
挿入する Part と移動し、ワールドにそれを配置します。名前を LavaFloor にします。
それを再サイズして、囲い空間の床を覆うようにします。
Material プロパティを Neon に設定し、Color をオレンジのシェードに設定して、フロアを溶岩のように見せます。
挿入する スクリプト を LavaFloor パーツに挿入し、名前を Kill に変更します。
デフォルトコードを削除し、溶岩のための変数を作成します。
local lava = script.Parent
イベントに接続する
イベント を使用して、ユーザーが溶岩に触れたときを検出します。すべてのパーツには、Touched 何かが触れると発動するイベントがあります。このイベントに 接続 して、発射時に機能を実行できます。
新しい関数 kill を宣言します。
ドットを使用して、溶岩オブジェクトの Touched イベントにアクセスし、プロパティのように: lava.Touched。
Connect 関数をTouched イベントに呼び出し、パーツがタッチされたときに呼び出される関数として kill() を渡す
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
kill 関数に書いたコードは、今や溶岩に何かが触れるたびに実行されます。 コロン が Connect 機能に使用されていることに注意してください、 ドットではない 心配しないでください、この時点での違いを覚えておいてください。
触れる部分を取得
ユーザーを殺すには、機能にはそのユーザーに関連するオブジェクトが必要です。パーツの Touched イベントは、それに触れた「他のパーツ」を提供できますが、機能の パラメーター にしてリクエストする場合にのみです。
パラメータは、機能が呼び出されたときに受け取ることを期待する定義です。パラメータは、他の変数と同じように機能に使用できます。機能が呼び出されるときに括弧に含めることで、パラメータに情報を渡すことができます。パラメータは、機能の最初の行の括弧で定義されます。Create a パラメータ を作成し、otherPart 関数のために kill と呼ばれる パラメータ を作成します。
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
kill 関数が呼び出されると、otherPart パラメータは溶岩フロアに触れた部分を表し、機能に書くコードはそれを使用できます。
キャラクターとヒューマノイド
ユーザーが溶岩に触れると、Roblox は、左脚か右足など、それを触ったユーザーの特定の身体部分を検出できます。この部分は、ユーザーの キャラクター モデルにあり、ユーザーのバーチャル空間内のアバターを構成するすべてのオブジェクトを含んでいます。これには以下が含まれます:
- 頭、手足、胴体など、ユーザーの個々の身体部分。
- ユーザーが着用する衣服とアクセサリ。
- The Humanoid , ユーザーに関連する多くのプロパティを含む特別なオブジェクト、ユーザーの健康を含む。
- ユーザーの動作を制御するヒューマノイドルートパーツ。
以前にも述べたように、溶岩に触れる身体の部分はすべてキャラクターモデルの一部であるため、otherPart.Parent でそのキャラクターに対する参照を取得できます。溶岩フロアに触れたパーツの親を保存する変数を作成する
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
キャラクタモデルから、ユーザーを殺すためにヒューマノイドオブジェクトを取得する必要があります。これは FindFirstChild() 関数で行うことができます—それに検索しているものの名前を渡し、そのオブジェクトで見つけた最初の一致する子供を提供します。呼び出し FindFirstChild() 変数 partParent を子として見つけ、新しい変数 "Humanoid" に結果を保存するには、humanoid という新しい変数を呼び出します。
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
ヒューモイドをチェック
Humanoid が if 文を使用して見つかったかどうかを簡単にチェックできます。if 文のコードは、最初の行で定義された条件が真である場合にのみ実行されます。
将来のコースで出会う可能性のあるより複雑な条件を構築するために使用できるさまざまな オペレーター があります - 今のところ、そこに humanoid 変数を置いてください。条件として humanoid を含む if 文を作成する
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)
キャラクターの体力を設定
今、Humanoid がチェックされたので、そのプロパティを変更できます。その Health プロパティを 0 に設定すると、関連するキャラクターが死亡します。if 文の体で、humanoid の Health プロパティを 0 に設定します。
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
それで、溶岩フロアが完了しました!あなたの経験をテストし、致命的な溶岩が連絡触するとユーザーをうまく殺すことがわかります。溶岩をオビーで追加の課題として使用したり、世界の境界として使用したりしてみてください。
最終コード
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)