Пример #1
0
    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("该货物已经出库!");
        }
    }
Пример #2
0
    //修改货物对应的面板的颜色(不同状态)
    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;
        }
    }
Пример #3
0
    //在货物仓位面板 点击方块 触发
    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;
        }
    }