溶岩の床
CoddyのLuaジャーニー「Robloxゲームのスクリプティング」セクションの一部。レッスン 12/24。
タッチパッドから、hitは体のパーツだとわかります。そのParentはキャラクターで、すべての体のパーツを含むモデルです。キャラクターにはHumanoidも含まれており、そこにHealthがあります。
FindFirstChildは名前で子を探し、見つからない場合はnil(何もない状態)を返します。
local humanoid = hit.Parent:FindFirstChild("Humanoid")
if humanoid then
print(humanoid.Health)
endifは、humanoidがnilの場合、そのブロックをスキップします。落下するボールにはHumanoidがありません。プレイヤーではないものがパーツに触れるたびに、nilをHumanoidであるかのように使うと、Outputにエラーが発生します。
Healthが0になったHumanoidは倒され、数秒後にプレイヤーはリスポーンします。
チャレンジ
中級光るオレンジ色の帯が溶岩で、その中にこのスクリプトがあります。何かが溶岩に触れたら、hit.Parent内にHumanoidがあるか探し、あればそのHealthを0に設定します。
プレイヤー以外のものにもスクリプトが対応できるようにしてください。チェックでは、ボールを溶岩の上に落とします。
Playを押して溶岩に入ります(5秒後にリスポーンします)。その後、Checkを押します。
自分で試してみよう
local lava = script.Parent
lava.Touched:Connect(function(hit)
end)
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Robloxゲームのスクリプティングのすべてのレッスン
自分で練習してみよう: Luaオンラインコンパイラ