近年、ゲームのプラットフォームはスマホに置き換わった。
物理コントローラーが無いゲームの操作は、色々な形に変化している。
今から扱うのは、一つのタッチパネル独自の操作方法である。
ゲームフィールドとなるオブジェクトに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 の説明はひとまず完了。
コメント