Unityでゲーム、アプリ開発

Unityで初めてゲームやアプリを作る人のための支援ブログです。

Unity ゴール判定を実装してゲームクリアテキストを表示させよう! Unity学習27

今回は、オブジェクトとの接触によるゴール判定を実装して、
ゴールしたらキャラクターを消してゲームクリアテキストを表示させる
方法を紹介していきます。

※動画での説明がいい方は下記動画をご覧ください。
記事での説明がいい方はそのまま読み進めてください。

youtu.be


ゴール判定を実装してゲームクリアテキストを表示させよう!

f:id:Phoenix9056:20200426112438p:plain

今回はシーン遷移は含みませんので
シーン遷移をさせていきたい人は下記
記事を参考にしてください。

www.unityprogram.info


f:id:Phoenix9056:20200426112745p:plain

Hierarchy内の①+をクリック⇨3D Object⇨②PlaneとSphereを作成してください。
SphereInspectorからTransformScaleの値を③の様に変更して
ゴール場所に使うSphereを円盤状に変更します。

色をつけていきたいので、Project内の自分が分かりやすい所で
右クリック⇨Create⇨Materialを選択して④のMaterialの名前をRedで作成します。
色はInspector内のAlbedoから好きな色に変更してください。

④のMaterialHierarchy内にあるSphereにドラッグ&ドロップして
色を変更させましょう。

次に、ゴール判定とゲームクリアのテキストを
表示させるためのスクリプトを作っていきます。
Project内の自分の分かりやすい所で右クリック⇨Create⇨C# Scriptを選択して
⑤のスクリプトを名前はGameで作っていきます。

次のコードをコピー&ペーストするか同じ記述にしてください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class Game : MonoBehaviour
{
    //Inspectorでキャラクターとゴールオブジェクトの指定を出来る様にします。
    public GameObject chara;
    public GameObject gameclea;

    
    private void OnTriggerEnter(Collider other)
    {
        //もしゴールオブジェクトのコライダーに接触した時の処理。
        if (other.name == chara.name)
        {
            //ゲームクリアテキストを表示させてキャラクターを非表示にします。
            gameclea.GetComponent<Text>();
            gameclea.SetActive(true);
            chara.SetActive(false);
          
        }
    }
 
    }

出来た⑤のGameスクリプトHierarchy内にある
Sphereにドラッグ&ドロップしてアタッチしてください。

今度は動かして行くキャラクターを用意して
Scene内にドラッグ&ドロップします。
※動かすキャラクターがない人は下記記事を参考にしてUnityちゃんを用意しましょう。
www.unityprogram.info


f:id:Phoenix9056:20200426114532p:plain

ゲームクリアのテキストを作っていきます。
Hierarchy内にある①+⇨UI⇨Text-TextMeshProを選択して、
②を作成します。
Canvasをダブルクリックすると一瞬でScene画面内にテキストとキャンバスが
表示されて編集しやすくなります。

②のText (TMP)をクリックして、Inspector内にある
③のTextには自分が表示させたい文字を入力して、
Font Assetの◉をクリックして好きなフォントの形を決めます。
Font Sizeで文字の大きさを変えて、Vertex Colorより色を変更しましょう。

④のScene内でテキストを囲むボックスの大きさを変えて
文字の位置を表示させたい所に移動させます。

Text(TMP)Inspectorの⑤のチェックは外してテキストを
非表示にさせましょう。
Scriptから表示させる様にします。

次が最後の作業になります。


f:id:Phoenix9056:20200426115806p:plain

Hierarchy内の①SphereのInspectorに追加された
②のGameスクリプト内のCharaに③のキャラクターを追加して、
Gamecleaに④のText (TMP)を追加して完了です。

再生してゴールオブジェクトに乗ってみましょう!

f:id:Phoenix9056:20200426120203g:plain

上手くいったでしょうか?
一瞬で消えてしまうので消えるまでの時間を1秒くらい
あけた方がいいと思いました。
また、ゲームクリア時のパーティクルの発生や
シーン遷移の仕方も詳細で記事を書いていきたいと思います。

ご視聴ありがとうございました!

関連記事

※本格的に3Dゲームを作っていきたい方は下記カテゴリを参考にしてください。
www.unityprogram.info

※オススメの無料アセットは下記カテゴリより。便利なアセットが有ます。
www.unityprogram.info

※Unityを学習していきたい方は下記カテゴリを覗いて見てください。
www.unityprogram.info

※実際に使って読んでみたオススメの本は下記カテゴリからご覧ください。
www.unityprogram.info

※初心者に向けた簡単な記事は下記カテゴリより。
www.unityprogram.info