Esempio n. 1
0
    void TryCreatingHiddenAgent()
    {
        if (HiddenAgent == null)
        {
            var hiddenObject = new GameObject("(Hidden) " + name);
            hiddenObject.hideFlags = HideFlags.NotEditable;
            hiddenObject.transform.SetParent(transform.parent);

#if UNITY_EDITOR
            var staticFlags = GameObjectUtility.GetStaticEditorFlags(gameObject);
            GameObjectUtility.SetStaticEditorFlags(hiddenObject, staticFlags);
#else
            hiddenObject.isStatic = gameObject.isStatic;
#endif
            HiddenAgent = hiddenObject.AddComponent <HiddenNavMeshAgent>();
            CustomNavMesh.RegisterAgent(this, HiddenAgent);
        }
    }
Esempio n. 2
0
 void TryDestroyingHiddenAgent()
 {
     if (HiddenAgent != null)
     {
         CustomNavMesh.UnregisterAgent(this, HiddenAgent);
         if (Application.isPlaying)
         {
             Destroy(HiddenAgent.gameObject);
         }
         else
         {
             // avoid "Cannot destroy GameObject while it's parent is being activated or deactivated" when leaving scene
             if (SceneManager.GetActiveScene().isLoaded)
             {
                 DestroyImmediate(HiddenAgent.gameObject);
             }
         }
     }
 }
Esempio n. 3
0
    //[MenuItem("UAIPC/Ch02/CustomNavMeshWindow")]
    static void Init()
    {
        //window = EditorWindow.GetWindow<CustomNavMeshWindow>();
        //window.title = "CustomNavMeshWindow";

        SceneView.onSceneGUIDelegate += OnScene;
        graphObj = GameObject.Find("CustomNavMesh");
        if (graphObj == null)
        {
            graphObj = new GameObject("CustomNavMesh");
            graphObj.AddComponent <CustomNavMesh>();
            graph = graphObj.GetComponent <CustomNavMesh>();
        }
        else
        {
            graph = graphObj.GetComponent <CustomNavMesh>();
            if (graph == null)
            {
                graphObj.AddComponent <CustomNavMesh>();
            }
            graph = graphObj.GetComponent <CustomNavMesh>();
        }
    }