エッセイマンガ!オタクビアンカップル同棲日記「よめよめ」

同棲中のレズビアンカップルのゆんとあゆむが、日々の生活の様子をマンガや日記にしてお届けするブログです

Unityで障害物衝突時にGAMEOVERテキストを表示方法!

Unityで3Dのキャラクターを障害物に衝突させるイメージ

今日はUnityゲーム制作講座、第八弾です!

今日はゲームオーバーだっけ?

ちゃんとしたゲームオーバーって感じではないけど、障害物に衝突したときに「GAMEOVER」っていうテキストを出す処理を書いていくよ

Unityで3Dキャラクターが障害物に衝突した際にテキストを出す方法

障害物を配置

Unityで3Dキャラクターを障害物に衝突させるには、動けるキャラと、地面、障害物が必要です。

ここでは障害物はCubeを使用するので、Hierarchyに追加して、TransformのScaleを変更して適当な大きさになるよう調整しましょう。

Unityで3DObjectの大きさを変更するイメージ

 

この記事から読み始めた方は、以前の記事を参考に、必要な準備をしてから続きに進んでください。 

 

障害物用CubeにBoxColliderが付いているか確認

Hierarchy上に障害物用Cubeを追加したら、選択してInspectorウインドウにBoxColliderが付いているか確認しましょう。

以下の画像のようなComponentが入っていればOKです。

BoxColliderのイメージ

 

GAMEOVERテキストを作成

まずHierarchy上にTextを追加します。名前はわかりやすく「GameOverText」としておきましょう。

Hierarchy上にTextを追加するイメージ

 

Textの表示位置を調整します。

Textの表示位置調整のイメージ

 

InspectorウインドウのRectTransformのWidthとHeightを調整します。ここでサイズを広げておかないと、Textのサイズを大きくしたときに表示が消えてしまいます。

TextのRectTransformを調整するイメージ

 

InspectorウインドウのTextから、Text、FontStyle、FontSize、Color等を調整し、見た目を整えます

Textの設定イメージ

 

Inspector上のObject名の左にあるチェックボックスのチェックを外します

f:id:aaafrog:20211113175055p:plain

 

衝突用Scriptを追加

Scriptsフォルダに障害物衝突用の新しいScriptファイルを作成します。名前は「CollisionManager」としておきましょう。

Script追加イメージ

 

追加したScriptに以下を追加し、保存します。

    public GameObject gameOverText;

    void OnCollisionEnter(Collision col)
    {
        Debug.Log("Collision");
        gameOverText.SetActive(true);
    }

 

GameOverTextのInspectorに、CollisionManagerを追加し、GameOverTextという表示の欄にHierarchy上のGameOverTextを貼り付けます。

f:id:aaafrog:20211113171124p:plain

 

動作確認を行う

ここまででキャラクターが障害物に接触した際に、GameOverTextが表示されるようになっているはずなので、ゲームを再生し、想定通りの動作になっているかを確認しましょう。

イメージどおりに動いてくれていれば完了です。

 

動画も作成しているので、細かい解説などはこちらから確認してください。

 

続きはこちら!

 

テキストが表示されるだけなんだねぇ~

当たった瞬間にキャラを消したり、シーンを遷移をしたりさせることもできるんだけど、それはまた別の機会にしようと思うよ。

そか~