Unity5 ~ナビゲーション~

近年、ゲームのプラットフォームはスマホに置き換わった。

物理コントローラーが無いゲームの操作は、色々な形に変化している。

 

今から扱うのは、一つのタッチパネル独自の操作方法である。

ゲームフィールドとなるオブジェクトにNavigation Mesh(以下、NavMesh)を設定して、その範囲内をPlayer Caractarが移動する。

 

方法としては、まず最初にWindowのNavigationを選択し、その中のObjectのタブを選択し、移動させたいオブジェクトを選択する。

Navigation Static チェックボックスにチェックし、ベイキングの処理に適用させる。

ベイク時の詳細設定も可能だが、ここでは、省略。

Bakeをクリック。

NavMeshが、作成される。

 

次に、Playerとなるオブジェクトを作成。

どうやら、Cylinderが都合が良いようなので、GameObject > 3D Object > Cylinder で作成。

 

Compornent > Navigation > NavMesh Agent で、NavMesh Agent コンポーネントを追加。

 

そして、目的地となるオブジェクトを作成。(Sphere あたりで、適当に。)

MoveTo.cs を作成する。

 

 // MoveTo.cs
    using UnityEngine;
    using System.Collections;
    using UnityEngine.AI;

    public class MoveTo : MonoBehaviour {
       
       public Transform goal;
       
       void Start () {
          NavMeshAgent agent = GetComponent<NavMeshAgent>();
          agent.destination = goal.position; 
       }
    }

ちなみに、公式にも載っていないが、using UnityEngine.AI; を記述しないと、アタッチできないので、注意が必要。

 

先ほど、作成した Player Caractar の Cylinder に上記のスクリプトをアタッチ。

 

目的地として、作成した sphere を、Goal プロパティに割り当てる。

 

再生ボタンをクリックして確認。

 

 

 

これで、簡単な NavMesh の説明はひとまず完了。

 

 

コメント

タイトルとURLをコピーしました