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); }
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); } } }
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); }