public void CargoExit() { //Item1在货物信息面板里 string CargoName = this.transform.parent.transform.Find("Item1").transform.Find("Value").GetComponent <Text>().text; GameObject Cargo = GameObject.Find(CargoName); CargoMessage CM = Cargo.GetComponent <ShowCargoInfo>().Cargomessage; int HighBayNum = CM.PositionInfo.HighBayNum; int FloorNum = CM.PositionInfo.FloorNum; int ColumnNum = CM.PositionInfo.ColumnNum; Place PlaceNum = CM.PositionInfo.place; StorageBinState state = StorageBinState.InStore; switch (PlaceNum) { case Place.A: state = GlobalVariable.BinState[HighBayNum - 1, FloorNum - 1, ColumnNum - 1, 0]; // = GlobalVariable.StorageBinState.Stay2Exit; //NumofPlace = 0; break; case Place.B: state = GlobalVariable.BinState[HighBayNum - 1, FloorNum - 1, ColumnNum - 1, 1]; // = GlobalVariable.StorageBinState.Stay2Exit; //NumofPlace = 1; break; } //已经入库 if (state == StorageBinState.Stored) { string BinName = "StorageStateInterface/MainBody/Scroll View/Viewport/Content/ShelfPanel" + HighBayNum.ToString(); BinName = BinName + "/Scroll View/Viewport/Content/Panel/BinsPanel/FloorItem" + FloorNum.ToString(); BinName = BinName + "/" + PlaceNum + "Panel/Bin_" + CargoName; //GlobalVariable.ExitCargosList.Add(Cargo);//出库列表增加该货物 //GlobalVariable.TempQueue.Enqueue(Cargo);//临时队列增加该货物 GlobalVariable.ConveyorQueue[(HighBayNum + 1) / 2 - 1].Enqueue(Cargo); //出库货物加入队列 //GlobalVariable.ExitQueue[(HighBayNum + 1) / 2 - 1].Enqueue(Cargo); GlobalVariable.ConveyorDirections[(HighBayNum + 1) / 2 - 1] = Direction.Exit; //输送线方向改为Exit(出库优先) GameObject.Find(BinName).GetComponent <Image>().color = GlobalVariable.BinColor[4]; Cargo.GetComponent <OperatingState>().state = CargoState.WaitOut; //进程列表添加一个出货的货物 GameObject Item = Instantiate((GameObject)Resources.Load("Scene/Simulation/Item")); Item.name = Cargo.name; Item.transform.Find("Name").GetComponent <Text>().text = Item.name; Item.transform.Find("State").GetComponent <Text>().text = "货物状态:" + "等待出库"; Item.transform.parent = GameObject.Find("ProcessInterface/MainBody/Scroll View/Viewport/Content").transform; GlobalVariable.ConveyorDirections[HighBayNum] = Direction.Exit; Debug.Log("该货物即将出库!"); } else if (state == StorageBinState.Stay2Exit) { Debug.Log("该货物已经准备出库!"); } else if (state == StorageBinState.OutStore) { Debug.Log("该货物正在出库!"); } else if (state == StorageBinState.NotStored) { Debug.Log("该货物已经出库!"); } }
//修改货物对应的面板的颜色(不同状态) public static void ChangeColor(string CargoName, StorageBinState state) { CargoMessage CM = GameObject.Find(CargoName).GetComponent <ShowCargoInfo>().Cargomessage; int HighBayNum = CM.PositionInfo.HighBayNum; int FloorNum = CM.PositionInfo.FloorNum; int ColumnNum = CM.PositionInfo.ColumnNum; Place PlaceNum = CM.PositionInfo.place; string BinName = "StorageStateInterface/MainBody/Scroll View/Viewport/Content/ShelfPanel" + HighBayNum.ToString(); BinName = BinName + "/Scroll View/Viewport/Content/Panel/BinsPanel/FloorItem" + FloorNum.ToString(); BinName = BinName + "/" + PlaceNum.ToString() + "Panel/Bin_" + CargoName; switch (PlaceNum) { case Place.A: GlobalVariable.BinState[HighBayNum - 1, FloorNum - 1, ColumnNum - 1, 0] = state; break; case Place.B: GlobalVariable.BinState[HighBayNum - 1, FloorNum - 1, ColumnNum - 1, 1] = state; break; } switch (state) { case StorageBinState.NotStored: GameObject.Find(BinName).GetComponent <Image>().color = GlobalVariable.BinColor[0]; break; case StorageBinState.Reserved: GameObject.Find(BinName).GetComponent <Image>().color = GlobalVariable.BinColor[1]; break; case StorageBinState.InStore: GameObject.Find(BinName).GetComponent <Image>().color = GlobalVariable.BinColor[2]; break; case StorageBinState.Stored: GameObject.Find(BinName).GetComponent <Image>().color = GlobalVariable.BinColor[3]; break; case StorageBinState.Stay2Exit: GameObject.Find(BinName).GetComponent <Image>().color = GlobalVariable.BinColor[4]; break; case StorageBinState.OutStore: GameObject.Find(BinName).GetComponent <Image>().color = GlobalVariable.BinColor[5]; break; } }
//在货物仓位面板 点击方块 触发 public void Click2() { string ButtonName = this.name; //货物名 string CargoName = ButtonName.Substring(4); CargoMessage CM = GameObject.Find(CargoName).GetComponent <ShowCargoInfo>().Cargomessage; int HighBayNum = CM.PositionInfo.HighBayNum; int FloorNum = CM.PositionInfo.FloorNum; int ColumnNum = CM.PositionInfo.ColumnNum; Place PlaceNum = CM.PositionInfo.place; //得到点击的货物状态 StorageBinState state = StorageBinState.NotStored; switch (PlaceNum) { case Place.A: state = GlobalVariable.BinState[HighBayNum - 1, FloorNum - 1, ColumnNum - 1, 0]; break; case Place.B: state = GlobalVariable.BinState[HighBayNum - 1, FloorNum - 1, ColumnNum - 1, 1]; break; } //若货物已经入库 //MessageInterface2有出库按钮 if (state == StorageBinState.Stored) { GameObject CargoMessageInterface = Instantiate((GameObject)Resources.Load("Scene/Simulation/MessageInterface2")); CargoMessageInterface.name = "MessageInterface"; GameObject Panel = CargoMessageInterface.transform.Find("Panel").gameObject; //调整面板显示信息 Panel.transform.Find("Item1").transform.Find("Value").GetComponent <Text>().text = CM.Name; Panel.transform.Find("Item2").transform.Find("Value").GetComponent <Text>().text = CM.Size.x.ToString() + "*" + CM.Size.y.ToString() + "*" + CM.Size.z.ToString(); Panel.transform.Find("Item3").transform.Find("Value").GetComponent <Text>().text = CM.Number1; Panel.transform.Find("Item4").transform.Find("Value").GetComponent <Text>().text = CM.InputTime; string position = "第" + CM.PositionInfo.HighBayNum + "货架" + CM.PositionInfo.FloorNum + "层" + CM.PositionInfo.ColumnNum + "列" + CM.PositionInfo.place.ToString() + "位"; Panel.transform.Find("Item5").transform.Find("Value").GetComponent <Text>().text = position; Panel.transform.Find("Item6").transform.Find("Value").GetComponent <Text>().text = CM.Description; //更改货物颜色 Material[] Material1 = GameObject.Find(CargoName).GetComponent <Renderer>().sharedMaterials; Material[] Material2 = Material1; Material Material3 = (Material)Resources.Load("Scene/Cargo/Material3"); Material2[10] = Material3; GameObject.Find(CargoName).GetComponent <Renderer>().sharedMaterials = Material2; //进行相机跟随 GlobalVariable.FollowPlayer = GameObject.Find(CargoName); GlobalVariable.FollowState = true; } //若货物没有出库,此时没有货物出库按钮 else { GameObject CargoMessageInterface = Instantiate((GameObject)Resources.Load("Scene/Simulation/MessageInterface1")); CargoMessageInterface.name = "MessageInterface"; GameObject Panel = CargoMessageInterface.transform.Find("Panel").gameObject; //调整面板显示信息 Panel.transform.Find("Item1").transform.Find("Value").GetComponent <Text>().text = CM.Name; Panel.transform.Find("Item2").transform.Find("Value").GetComponent <Text>().text = CM.Size.x.ToString() + "*" + CM.Size.y.ToString() + "*" + CM.Size.z.ToString(); Panel.transform.Find("Item3").transform.Find("Value").GetComponent <Text>().text = CM.Number1; Panel.transform.Find("Item4").transform.Find("Value").GetComponent <Text>().text = CM.InputTime; string position = "第" + CM.PositionInfo.HighBayNum + "货架" + CM.PositionInfo.FloorNum + "层" + CM.PositionInfo.ColumnNum + "列" + CM.PositionInfo.place.ToString() + "位"; Panel.transform.Find("Item5").transform.Find("Value").GetComponent <Text>().text = position; Panel.transform.Find("Item6").transform.Find("Value").GetComponent <Text>().text = CM.Description; //更改货物颜色 Material[] Material1 = GameObject.Find(CargoName).GetComponent <Renderer>().sharedMaterials; Material[] Material2 = Material1; Material Material3 = (Material)Resources.Load("Scene/Cargo/Material3"); Material2[10] = Material3; GameObject.Find(CargoName).GetComponent <Renderer>().sharedMaterials = Material2; //进行相机跟随 GlobalVariable.FollowPlayer = GameObject.Find(CargoName); GlobalVariable.FollowState = true; } }