Unityでゲーム、アプリ開発

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

Unity ナビゲーションを使ってマウスクリックで移動させよう Unity学習20

どうもこんばんは!
ゆうきやんです。

お笑い芸人の志村さんが
コロナの肺炎によってお亡くなりになられました。

僕すごい好きで子供の頃なんか
全員集合!って番組よくみてました。

きっと空の上でもたくさんの人を
笑わせていると思います!!

って今回真面目なのは置いといて、本題に入っていきましょう!


ナビゲーション機能を使ってマウスクリックで移動させよう!

f:id:Phoenix9056:20200229224458j:plain

Objectを移動させる方法って案外たくさんある物で、
今回は結構簡単に動いてくれるので
オススメです!

まずUnityを3Dでプロジェクトを開いてください。


f:id:Phoenix9056:20200330213210j:plain

Hierarchy内の①のから3D Object⇨②のPlaneと③のCapsuleを作成してください。
次に②のPlaneをクリックしてInspector内の上にある、
④のStaticの四角い所にクリックしてチェックを入れてください。

チェックを入れる事で、ナビゲーション機能がこの地面で
使えるようになります。

次にProject内の自分の好きなところに
右クリック⇨Create⇨C# Scriptをクリックして
⑤のスクリプトを作ってください。
今回名前はMoveCapsuleとします。

次のコードをコピーするか同じように記述してください。

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

//UnityEngine.AI名前空間をインポートします。
using UnityEngine.AI;


public class MoveCapsule : MonoBehaviour
{
    //NavMeshAgent型を変数agentで宣言します。
    NavMeshAgent agent;
    
    void Start()
    {
        //GetComponentでNavMeshAgentを取得して
        //変数agentで参照します。
        agent = GetComponent<NavMeshAgent>();
        
    }

    
    void Update()
    {
        //もしマウスの左クリックが押された時の処理
        if (Input.GetMouseButtonDown(0))
        {
            //マウスの左クリックが押されたら、その位置にRayを飛ばして、
            //Rayとクリックした位置が交える所にObjectを移動させます。
            RaycastHit hit;
            if(Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition),out hit, 100))
            {
                agent.destination = hit.point;
            }

        }
        
    }
}

スクリプトをunityに反映させて、
⑤のスクリプトを③のCapsuleにドラッグ&ドロップして
アタッチしてください。


f:id:Phoenix9056:20200330225356j:plain

Hierarchyにある①のCapsuleをクリックして、
Inspectorの一番下にある②のAdd Componentを選択して、
③のNav Mesh Agentを追加してください。

次にエディタ画面上部にある、④のWindowをクリックして、
⑤のAIをクリック、最後に⑥のNavigationをクリックしてください。

すると次の画面になります。


f:id:Phoenix9056:20200330231718j:plain

Navigation内にある、①Bakeをクリック。
次に②のBakeをクリックしてナビゲーションの範囲を反映してください。

③の水色になっている部分がナビゲーションできる範囲です。
ちなみに。Agent Radiusの値を低くするほど
範囲は広がっていきます。

これで完了です!再生してみましょう!

f:id:Phoenix9056:20200330232702g:plain

ナビゲーションの範囲内だったらマウスの左クリックをすると
動いてくれるはずです。

もしカメラが追従して欲しかったら下記記事を参考にしてください。
www.unityprogram.info

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

※このままUnity学習される方は下記カテゴリを参照してください。
www.unityprogram.info

※3Dゲーム作りを一から進めていきたい人は下記カテゴリより。
www.unityprogram.info

※Unity初心者編は下記カテゴリより。
www.unityprogram.info

※オススメアセットなどの紹介は下記カテゴリより参考にしてください。
www.unityprogram.info