Example #1
0
        Unit CreateMap(ResourcesComponent resourcesComponent, string abName, UnitComponent unitComponent,
                       int MapSizeX, int MapSizeY)
        {
            GameObject bundleGameObjectMapGrid =
                (GameObject)resourcesComponent.GetAsset(abName.StringToAB(), "MapGrid");
            // 添加格子
            Unit        mapGridUnit = null;
            MapGridData mapGridData = new MapGridData();

            mapGridData.ABName = abName;
            for (int x = 0; x < MapSizeX; x++)
            {
                for (int y = 0; y < MapSizeY; y++)
                {
                    GameObject gameObjectGrid = UnityEngine.Object.Instantiate(bundleGameObjectMapGrid);
                    gameObjectGrid.name = string.Format("Grid[{0}][{1}]", x, y);
                    // 创建地图格子实体
                    int id = gameObjectGrid.GetHashCode();// x * 1000 + y;
                    Log.Debug("创建地图格子实体:{0} ", id);
                    mapGridUnit = ETModel.ComponentFactory.CreateWithId <ETModel.Unit, GameObject>(
                        id, gameObjectGrid);
                    // 添加地图格子组件
                    mapGridData.GridX  = x;
                    mapGridData.GridY  = y;
                    mapGridData.BgName = "Desert";
                    MapGridComponent mapGridComponent = ETModel.ComponentFactory.CreateWithParent <MapGridComponent, MapGridData>(
                        mapGridUnit, mapGridData);
                    mapGridUnit.AddComponent(mapGridComponent);
                    // add
                    unitComponent.Add(mapGridUnit);
                }
            }
            return(mapGridUnit);
        }
Example #2
0
        private void HandleGridEmpty(EntityUid uid, MapGridComponent component, EmptyGridEvent args)
        {
            if (!_deleteEmptyGrids ||
                !EntityManager.TryGetEntity(uid, out var gridEnt) ||
                gridEnt.LifeStage >= EntityLifeStage.Terminating)
            {
                return;
            }

            MapManager.DeleteGrid(args.GridId);
        }
 public void Update()
 {
     if (Input.GetMouseButtonDown(1))
     {
         Unit unit = GetMapGrid();
         if (unit != null) // 点中地图
         {
             MapGridComponent mapGrid = unit.GetComponent <MapGridComponent>();
             Log.Debug("点中地图=>GridX:{0}, GridY:{1}", mapGrid.GridX, mapGrid.GridY);
             // 玩家移动
             Game.EventSystem.Run(ETDemoEventIdType.MapPlayerMove, unit.Position);
         }
     }
 }
Example #4
0
        private void HandleGridEmpty(EntityUid uid, MapGridComponent component, EmptyGridEvent args)
        {
            if (!_deleteEmptyGrids)
            {
                return;
            }
            if (!EntityManager.EntityExists(uid))
            {
                return;
            }
            if (EntityManager.GetComponent <MetaDataComponent>(uid).EntityLifeStage >= EntityLifeStage.Terminating)
            {
                return;
            }

            MapManager.DeleteGrid(args.GridId);
        }