Unity事例ノート

UNITY

ぶつかればn秒間ストップ

他のオブジェクトに触れると、プレーヤーの動きをn秒間停止させるように、スクリプトを作ってみましょう。

十字キーでCubeを操作しますが、飛んできたボールにぶつかると、2秒間動かすことができません。

2秒経過した後は、また動かせるようになります。

関連記事:
Invokeを使ってn秒後に関数を実行する
相手が動いている間、プレーヤーを動けなくする
数秒後にオブジェクトを出現させる
コルーチンを使って1秒後にテキストを消す
触れた相手をn秒後に削除する
乗ったオブジェクトをn秒後に消す
動きが止まればn秒後に呼び出す
デリゲートを使ってn秒後に実行
触れるとn秒間だけ停止してテキスト表示
1秒経過しなければクリックで実行できない

プレーヤーの作成

Cubeを作成し、Z方向を動かして手前に配置します。

CubeMove.csを作成し、Cubeに追加します。

CubeMove.csを記述します。

Ballタグのオブジェクトにぶつかれば、色が変わって、isStopのフラグがtrueになるようにします。

触れた後にn秒間停止させる

空のオブジェクトを作成し、座標を変えます。

BallShot.csを作成し、GameObjectに追加します。

BallShot.csを記述します。

Sphereを作成し、リジッドボディを追加。

Ballという名前でタグを作成します。

Sphereをプロジェクトビューにドラッグ&ドロップし、プレハブ化します。

Sphereの元データは削除しておきます。

GameObjectを選択し、プレハブのフィールドに、Sphereを入れます。

ゲームプレイしてみましょう。

通常時はグリーン、ぶつかるとレッドに変色し、2秒間停止。

停止後はまた元のように動かせるようになります。

関連記事:
Invokeを使ってn秒後に関数を実行する
相手が動いている間、プレーヤーを動けなくする
数秒後にオブジェクトを出現させる
コルーチンを使って1秒後にテキストを消す
触れた相手をn秒後に削除する
乗ったオブジェクトをn秒後に消す
動きが止まればn秒後に呼び出す
デリゲートを使ってn秒後に実行
触れるとn秒間だけ停止してテキスト表示
1秒経過しなければクリックで実行できない