今日はUnityゲーム制作講座、第八弾です!
今日はゲームオーバーだっけ?
ちゃんとしたゲームオーバーって感じではないけど、障害物に衝突したときに「GAMEOVER」っていうテキストを出す処理を書いていくよ
Unityで3Dキャラクターが障害物に衝突した際にテキストを出す方法
障害物を配置
Unityで3Dキャラクターを障害物に衝突させるには、動けるキャラと、地面、障害物が必要です。
ここでは障害物はCubeを使用するので、Hierarchyに追加して、TransformのScaleを変更して適当な大きさになるよう調整しましょう。
この記事から読み始めた方は、以前の記事を参考に、必要な準備をしてから続きに進んでください。
障害物用CubeにBoxColliderが付いているか確認
Hierarchy上に障害物用Cubeを追加したら、選択してInspectorウインドウにBoxColliderが付いているか確認しましょう。
以下の画像のようなComponentが入っていればOKです。
GAMEOVERテキストを作成
まずHierarchy上にTextを追加します。名前はわかりやすく「GameOverText」としておきましょう。
Textの表示位置を調整します。
InspectorウインドウのRectTransformのWidthとHeightを調整します。ここでサイズを広げておかないと、Textのサイズを大きくしたときに表示が消えてしまいます。
InspectorウインドウのTextから、Text、FontStyle、FontSize、Color等を調整し、見た目を整えます。
Inspector上のObject名の左にあるチェックボックスのチェックを外します。
衝突用Scriptを追加
Scriptsフォルダに障害物衝突用の新しいScriptファイルを作成します。名前は「CollisionManager」としておきましょう。
追加したScriptに以下を追加し、保存します。
public GameObject gameOverText; void OnCollisionEnter(Collision col) { Debug.Log("Collision"); gameOverText.SetActive(true); }
GameOverTextのInspectorに、CollisionManagerを追加し、GameOverTextという表示の欄にHierarchy上のGameOverTextを貼り付けます。
動作確認を行う
ここまででキャラクターが障害物に接触した際に、GameOverTextが表示されるようになっているはずなので、ゲームを再生し、想定通りの動作になっているかを確認しましょう。
イメージどおりに動いてくれていれば完了です。
動画も作成しているので、細かい解説などはこちらから確認してください。
続きはこちら!
テキストが表示されるだけなんだねぇ~
当たった瞬間にキャラを消したり、シーンを遷移をしたりさせることもできるんだけど、それはまた別の機会にしようと思うよ。
そか~