UNITY
P1

[UNITY]コライダーでゴールを作成する

[UNITY]コライダーでゴールを作成する

1

ゴールエリアのゲームオブジェクトをつく

ゴールエリアには透明とうめいのコライダーを使つかいます。まずはじめにからのゲームオブジェクトを追加ついかします。

Create > Create Empty で空のゲームオブジェクトを作成さくせいします。今回はゲームオブジェクトに「GOAL」という名前をつけます。

2

コライダーとレジットボディを追加ついかする

作ったゲームオブジェクトをえらび、Inspectorウィンドウで Add Component > Box Collider を選んで追加ついかします。また、同じようににRigidbodyを追加します。

3

コライダーとリジッドボディの設定せってい変更へんこう

BoxColliderとRigidbodyを以下のように設定せっていします。ポイントは[is Trigger]にチェックをつけることです。その他は好きなように変えることもできます。[is Trigger]をチェックすると物体同士ぶったいどうし接触せっしょく感知かんちしますが、衝突しょうとつはおきません。

ゲームの中で動かす必要のあるコライダーの付いたオブジェクトは、リジッドボディをける必要があります。また、衝突しょうとつや物理計算をさせたいゲームオブジェクトにはすべてコライダーとリジッドボディーが必要になります。

4

キャラクターにコライダーとリジッドボディを追加

Hierarchyでキャラクターオブジェクトを選択せんたくし、InspectorでAdd Component で [Rigidbody]と[Capsule Collider]を追加します。また、Capsule Colliderの「is Trigger」にチェックを付け、Rigidbodyの「Use Gravity」のチェックは外しておきます。

5

キャラクターのコライダーを調整ちょうせい

次に追加したCapusele Colliderの大きさを調整していきます。まず、Edit Colliderをクリックします。すると、Colliderがシーンウィンドウで編集へんしゅう出来るようになります。

シーンウィンドウで赤矢印の編集へんしゅうポイントをマウスで操作そうさして、キャラクターの大きさに合わせます。

6

ゲームクリアの文字を表示ひょうじするUIの追加

Hierarchyウィンドウで Create > UI > Text でUIテキストオブジェクトを追加します。

次にInspectorウィンドウで←のように編集へんしゅうします。Textオブジェクトの名前も合わせて変更へんこうしておきます。

←のようにゲームウィンドウに「ゲームクリア」の文字が表示されました。

次にゴールエリアにキャラクターが来たことを発見するプログラムを作ります。まず、ProjectウィンドウでCreate > C# Scriptで新しいプログラムを作ります。作ったプログラムに下のプログラムをコーディングします。

※コードには開発かいはつしやすいようにログ出力文しゅつりょくぶんが書いてあります。キャラクターの動きによってログが出るので、チェックするのも勉強になるよ。

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

public class GameController : MonoBehaviour {

    public GameObject MainText;

    // Use this for initialization
    void Start () {
        MainText.SetActive (false);
    }
    
    // Update is called once per frame
    void Update () {
        
    }


    void OnTriggerEnter(Collider collider){
        Debug.Log ("OnTrriger1");
        if (collider.gameObject.tag == "Player") {
            Debug.Log ("OnTrriger");
            MainText.SetActive (true);        }
    }
    // 衝突している間呼ばれ続ける  
    void OnTriggerStay(Collider other) {  
        Debug.Log ("OnTrriger2");
    }  
    // 衝突から離れた瞬間に呼ばれる  
    void OnTriggerExit(Collider other) {  
        Debug.Log ("OnTrriger3");
    }  


    // 衝突した瞬間に呼ばれる  
    void OnCollisionEnter(Collision collision) {  
        Debug.Log ("OnColider1");
    }  
    // 衝突している間呼ばれ続ける  
    void OnCollisionStay(Collision collision) {  
        Debug.Log ("OnColider2");
    }  
    // 衝突から離れた瞬間に呼ばれる  
    void OnCollisionExit(Collision collision) {  
        Debug.Log ("OnColider3");
    }  
}
7

スクリプトの適応てきおう(アタッチ)

作成したスクリプト(プログラム)をGOALオブジェクトにアタッチ(赤の線)します。また、スクリプトの中で宣言せんげんされている「 public GameObject MainText;」の指定先していさきとしてMainText(UITextオブジェクト)を選択(緑の線)します。

8

ゲームでテストしてみよう

正しく作れていれば、クリアエリアにキャラクターが入った瞬間しゅんかん「ゲームクリア」という文字が表示されるはずだ!