/// <summary> /// 地图初始化 /// </summary> /// <returns></returns> public IEnumerator Init() { //初始化地图 //yield return new WaitForEndOfFrame(); var tileRowNum = mMapHeight / mTileSize; var tileColumnNum = mMapWidth / mTileSize; var time = new Stopwatch(); time.Start(); for (var i = 0; i < tileColumnNum; i++) { for (var j = 0; j < tileRowNum; j++) { //var tile = Utils.CreateGameObject(mTileItem, mEditorLayer, new Vector3(mTileSize * i, -mTileSize * j, 0)).GetComponent<TileItem>(); var go = Instantiate(mTileItem); go.transform.SetParent(LandformLayer); go.transform.localScale = Vector3.one; go.SetLayer(LandformLayer.gameObject.layer, true); go.GetComponent <RectTransform>().anchoredPosition3D = new Vector3(mTileSize * i, -mTileSize * j, 0); var tileItem = go.AddComponent <TileItem>(); StartCoroutine(tileItem.SetData(i, j)); TilesManager.TileItemDicts.Add(new Vector2(i, j), tileItem); } } Debug.Log("time:" + (time.ElapsedMilliseconds)); //初始化工人 TileItem item = TilesManager.GetTileItem(75, 50); //mTileItemDicts.TryGetValue(new Vector2(75, 50), out item); WorkerManager.CreateWorker(RoleLayer, item); item = TilesManager.GetTileItem(76, 51); //mTileItemDicts.TryGetValue(new Vector2(76, 51), out item); WorkerManager.CreateWorker(RoleLayer, item); yield break; }