おさらい:レーザートリップワイヤー
CoddyのUnityジャーニー「物理演算とゲームプレイ」セクションの一部。レッスン 41/71。
このまとめでは、この章の内容を振り返ります。一部のレイヤーだけを検出するレイキャスト、何に当たったか、そして前のフレームの状態を記憶してアラームが一度だけ鳴るようにするboolについてです。
チャレンジ
中級レーザー式のトリップワイヤーで金庫を守りましょう。
- 各フレームで、
Physics.Raycast(transform.position, transform.forward, out RaycastHit hit, range, intruders)を実行します。 - ビームが当たっている間は
lamp.material.colorをColor.redに、何にも当たっていない間はColor.greenにします。 - ビームが何にも当たっていない状態から遮られた状態に変わったときだけ、
"Alarm: " + hit.collider.nameをログに記録します。前フレームの判定をbool blockedフィールドに保存します。
「プレイ」を押してビームを通り抜けます。通るたびにアラームが1回鳴ります。その後、「確認」を押します。
自分で試してみよう
using UnityEngine;
public class Tripwire : MonoBehaviour
{
public LayerMask intruders;
public Renderer lamp;
public float range = 6f;
void Update()
{
}
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
物理演算とゲームプレイのすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド