public static GameObject Create(BuildingsEntryInfo buildingsEntryInfo, MapController controller, Vector3 position) { Transform parent = controller.View.GroundworkLayer; if (mBuildItemGameObject == null) { mBuildItemGameObject = Resources.Load <GameObject>(mBuildingItemPath); } var go = Object.Instantiate(mBuildItemGameObject); switch (buildingsEntryInfo.MenuType) { case MenuTypeEnum.Groundwork: parent = controller.View.GroundworkLayer; break; case MenuTypeEnum.BuildingMaterials: parent = controller.View.BuildingMaterialsLayer; break; case MenuTypeEnum.Room: parent = controller.View.RoomLayer; break; } go.transform.SetParent(parent); go.transform.localScale = Vector3.one; go.transform.localPosition = position; return(go); }
/// <summary> /// 初始数据 /// </summary> /// <param name="content"></param> /// <param name="buildingsInfo"></param> public void Init(BuildMenuContent content, BuildingsEntryInfo buildingsInfo) { mContent = content; BuildingItemInfo = buildingsInfo; ItemImage.sprite = Resources.Load <SpriteRenderer>(buildingsInfo.ImagePath).sprite; }
/// <summary> /// 设置编辑模式 /// </summary> /// <param name="isEditor"></param> /// <param name="buildingsEntryInfo"></param> public void Editor(bool isEditor, BuildingsEntryInfo buildingsEntryInfo) { mCurrentBuildingsInfo = buildingsEntryInfo; if (isEditor) { if (MouseEventLayer.gameObject.activeSelf == false) { MouseEventLayer.gameObject.SetActive(true); } mIsMoveSelect = true; StartCoroutine(checkMouseSelect()); } else { if (MouseEventLayer.gameObject.activeSelf) { MouseEventLayer.gameObject.SetActive(false); } mIsMoveSelect = false; } }
private void openMenu() { //todo:根据菜单类型获取不同菜单的配置表并初始化 var imagePath1 = "Sprites/Groundwork/brick"; var imagePath2 = "Sprites/Groundwork/concrete"; var imagePath3 = "Sprites/Common/remove"; if (MenuType == MenuTypeEnum.Groundwork) { if (mBuildingsList == null) { mBuildingsList = new List <BuildingsEntryInfo>(); var item = new BuildingsEntryInfo { MenuType = MenuType, CommandType = BuildCommandType.BuildGroundwork, TakeOverTileNumH = 1, TakeOverTileNumV = 1, ImagePath = imagePath1 }; mBuildingsList.Add(item); var item1 = new BuildingsEntryInfo { MenuType = MenuType, CommandType = BuildCommandType.BuildGroundwork, TakeOverTileNumH = 1, TakeOverTileNumV = 1, ImagePath = imagePath2 }; mBuildingsList.Add(item1); var item2 = new BuildingsEntryInfo { MenuType = MenuType, CommandType = BuildCommandType.RemoveGroundwork, ImagePath = imagePath3 }; mBuildingsList.Add(item2); } } else if (MenuType == MenuTypeEnum.BuildingMaterials) { imagePath1 = "Sprites/BuildingMaterials/wall-one"; imagePath2 = "Sprites/BuildingMaterials/door"; if (mBuildingsList == null) { mBuildingsList = new List <BuildingsEntryInfo>(); var item = new BuildingsEntryInfo { MenuType = MenuType, CommandType = BuildCommandType.BuildWall, TakeOverTileNumH = 1, TakeOverTileNumV = 1, ImagePath = imagePath1 }; mBuildingsList.Add(item); var item1 = new BuildingsEntryInfo { MenuType = MenuType, CommandType = BuildCommandType.BuildDoor, TakeOverTileNumH = 1, TakeOverTileNumV = 1, ImagePath = imagePath2 }; mBuildingsList.Add(item1); var item2 = new BuildingsEntryInfo { MenuType = MenuType, CommandType = BuildCommandType.RemoveBuildingMaterials, ImagePath = imagePath3 }; mBuildingsList.Add(item2); } } else if (MenuType == MenuTypeEnum.Room) { imagePath1 = "Sprites/Room/jizhenshi"; imagePath2 = "Sprites/Room/menzhenshi"; if (mBuildingsList == null) { mBuildingsList = new List <BuildingsEntryInfo>(); var item = new BuildingsEntryInfo { MenuType = MenuType, CommandType = BuildCommandType.BuildRoom, TakeOverTileNumH = 2, TakeOverTileNumV = 3, ImagePath = imagePath1 }; mBuildingsList.Add(item); var item1 = new BuildingsEntryInfo { MenuType = MenuType, CommandType = BuildCommandType.BuildRoom, TakeOverTileNumH = 3, TakeOverTileNumV = 3, ImagePath = imagePath2 }; mBuildingsList.Add(item1); } } GameView.OpenMenu(MenuType, mBuildingsList); //关闭其他已打开的菜单 }
/// <summary> /// 创建建造命令 /// </summary> /// <param name="mapController"></param> /// <param name="selectedItems"></param> /// <param name="buildingsInfo"></param> /// <returns></returns> public static BuildCommand Create(MapController mapController, List <TileItem> selectedItems, BuildingsEntryInfo buildingsInfo) { Type commandType; if (!mMapping.TryGetValue(buildingsInfo.CommandType, out commandType)) { var name = "Assets.Hospital.Scripts.Modules.Controllers.Map.Commands." + buildingsInfo.CommandType.ToString() + "Command"; commandType = Type.GetType(name); mMapping.Add(buildingsInfo.CommandType, commandType); } if (commandType == null) { return(null); } var ret = (BuildCommand)Activator.CreateInstance(commandType); ret.BuildingsInfo = buildingsInfo; ret.Map = mapController; ret.SelectedItems = selectedItems; return(ret); }
/// <summary> /// 设置当前是否编辑状态 /// </summary> /// <param name="isEditor"></param> /// <param name="buildingsEntryInfo"></param> public void SetEditor(bool isEditor, BuildingsEntryInfo buildingsEntryInfo = null) { //Debug.Log("map editor:"+isEditor); Map.Editor(isEditor, buildingsEntryInfo); }