Beispiel #1
0
        //房间配置寻路数据
        public IEnumerator ConfigPathfinderData(GameResPackage.AsyncLoadPackageData loadData)
        {
            //寻路组件
            Pathfinder finder = m_roomObj.AddComponent <Pathfinder>();

            finder.MapStartPosition = new Vector2(m_locatorObj.transform.position.x, m_locatorObj.transform.position.z);
            finder.MapEndPosition   = new Vector2(m_RTLocatorObj.transform.position.x, m_RTLocatorObj.transform.position.z);
            finder.Tilesize         = GameSettings.Singleton.m_roomPathfinderTileSize;
            finder.CreateMap(m_obstacleData);
            for (int i = 0; i < m_gateList.Count; i++)
            {
                if (!m_gateList[i].isGateOpen)
                {
                    continue;
                }
                if (null != m_gateList[i].BridgeData)
                {
                    GameResPackage.AsyncLoadPackageData loadData2 = new GameResPackage.AsyncLoadPackageData();
                    IEnumerator e = m_gateList[i].BridgeData.nextRoomNode.ConfigPathfinderData(loadData2);
                    while (true)
                    {
                        e.MoveNext();
                        if (loadData2.m_isFinish)
                        {
                            break;
                        }
                        yield return(e.Current);
                    }
                }
            }
            loadData.m_isFinish = true;
        }
Beispiel #2
0
 private void Awake()
 {
     // get the car controller
     m_Car           = GetComponent <CarController>();
     terrain_manager = terrain_manager_game_object.GetComponent <TerrainManager>();
     terrain_info    = terrain_manager.myInfo;
     pathfinder      = terrain_manager.GetComponent <Pathfinder> ();
     pathfinder.info = terrain_info;
     pathfinder.CreateMap();
     pathfinder.FindPath();
 }