Version: 2021.2
言語: 日本語
Unity 5.0 アップグレードガイド
Unity 5.0 のアニメーション

Unity 5.0 の AI

AI/Navmesh 機能を使用している場合は、Unity 4 から Unity 5 へ移行するときに注意しなければいけない点があります。

  • Navmesh の区切り方法に変更があったため形状の見た目が異なる場合があります。狭い廊下/出入口を実装している場合に発生しやすくなります。これは見た目通り、Navmesh の接続が途切れる可能性があります。この問題は、Navmesh のビルド設定でボクセルサイズを小さくすることによってこの問題を解決することができます。

  • NavMeshAgent は Stop 関数を呼び出した後に目的地を設定しても勝手に動き出すことはありません。再度動かすには Resume 関数を呼び出します。

  • NavMeshAgent.updatePosition: updatePosition が false のときに、エージェントの Transform が動いてもエージェントの位置は変化しません。Navmesh 以外の変更を受け付けないようにエージェントの位置はリセットされます。

  • NavMeshObstacle コンポーネント: NavMeshObstacle コンポーネントはカプセル状に加え、ボックスの形状をデフォルトとして選択できるようになりました。これらの形状は、Navmesh のくりぬきと障害物の作成で使用できます。

  • Unity 4 でビルドされた Navmesh はサポートされていません。Unity 5 上で再度ビルドする必要があります。すべてのシーンの Navmesh をリビルドする方法として下記のスクリプトを使用してみてください。

再ビルドするためのサンプルスクリプト

# if UNITY_EDITOR
using System.Collections.Generic;
using System.Collections;
using System.IO;
using UnityEditor;
using UnityEngine;
using UnityEngine.AI;
public class RebakeAllScenesEditorScript
{
    [MenuItem ("Upgrade helper/Bake All Scenes")]
    public static void Bake()
    {
        List<string> sceneNames = SearchFiles (Application.dataPath, "*.unity");
        foreach (string f in sceneNames)
        {
            EditorApplication.OpenScene(f);
 
            // NavMesh データを再ベイク
            NavMeshBuilder.BuildNavMesh ();
 
            EditorApplication.SaveScene ();
        }
    }
    static List<string> SearchFiles(string dir, string pattern)
    {
        List <string> sceneNames = new List <string>();
        foreach (string f in Directory.GetFiles(dir, pattern, SearchOption.AllDirectories))
        {
            sceneNames.Add (f);
        }
        return sceneNames;
    }
}
# endif
Unity 5.0 アップグレードガイド
Unity 5.0 のアニメーション
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961