//输送机(多个)(垂直于高架库方向) #region Create_ConveyorGroup2 public void Create_ConveyorGroup2(ParametersList1 PL, GameObject ConveyorGroup) { CreateModel.RollerConveyor_Parameter RCP = new CreateModel.RollerConveyor_Parameter(); RCP.RCHigh = PL.RCP.RCHigh - 0.1f; RCP.RCWidth = PL.RCP.RCWidth; RCP.RCLength = PL.MHP.HookupDistance + PL.MHP.TunnelWidth + 2 * PL.HP.Size.x - RCP.RCWidth; RCP.RollerRadius = PL.RCP.RollerRadius; GameObject Conveyor = new GameObject(); Conveyor.name = "Conveyor"; CreateModel.RollerConveyorType type = CreateModel.RollerConveyorType.Intact; CreateModel.RollerConveyor.Create_RollerConveyor(RCP, Conveyor, type); for (int i = 0; i < (PL.MHP.Num + 1) / 2; i++)//增加一个出口输送机 { GameObject clone = Instantiate(Conveyor); clone.name = Conveyor.name + (i + 1).ToString(); clone.transform.parent = ConveyorGroup.transform; float TempValue = -PL.HP.Size.x - i * (PL.HP.Size.x * 2 + PL.MHP.HookupDistance + PL.MHP.TunnelWidth); clone.transform.localPosition = new Vector3(TempValue, 0, 0); clone.transform.Rotate(0, -90, 0); } DestroyImmediate(Conveyor); }
//创建仓库场景 #region Create_Scene public void Create_Scene(ParametersList1 PL, Varibles.PositionsList POL, string Path) { CreateModel.HighStoreShelf_Parameter HP = PL.HP; CreateModel.MultiHighBay_Parameter MHP = PL.MHP; CreateModel.RollerConveyor_Parameter RCP = PL.RCP; float TempValue1 = RCP.RCLength; float TempValue2 = RCP.RCWidth; float TempValue3 = TempValue2 - HP.Size.x; GameObject WarehouseScene = new GameObject(); WarehouseScene.name = SceneName; //创建场景 //货物 GameObject Cargos = new GameObject(); Cargos.name = "Cargos"; Cargos.transform.parent = WarehouseScene.transform; Cargos.transform.localPosition = new Vector3(0, 0, 0); //添加入口输送机 GameObject EnterConveyor = new GameObject(); EnterConveyor.name = "EnterConveyor"; CreateModel.RollerConveyorType type = CreateModel.RollerConveyorType.Intact; CreateModel.RollerConveyor_Parameter RCP2 = new CreateModel.RollerConveyor_Parameter(); RCP2 = PL.RCP; RCP2.RCHigh = RCP2.RCHigh - 0.1f; RCP2.RCLength = PL.HP.Size.x * 2 + PL.MHP.HookupDistance + PL.MHP.TunnelWidth - RCP2.RCWidth; CreateModel.RollerConveyor.Create_RollerConveyor(RCP2, EnterConveyor, type); EnterConveyor.transform.parent = WarehouseScene.transform; EnterConveyor.transform.Rotate(0, -90, 0); EnterConveyor.transform.localPosition = new Vector3((RCP2.RCLength + TempValue3), 0, -TempValue2 / 2); //添加顶升移载机设备 GameObject LiftTransferGroup = new GameObject(); LiftTransferGroup.name = "LiftTransferGroup"; Create_LiftTransferGroup(PL, LiftTransferGroup); //LiftTransferGroup.transform.Rotate(0, 180, 0); LiftTransferGroup.transform.parent = WarehouseScene.transform; LiftTransferGroup.transform.localPosition = new Vector3(0, 0, -TempValue2 / 2); //添加输送设备(垂直于高架库方向) GameObject ConveyorGroup2 = new GameObject(); ConveyorGroup2.name = "ConveyorGroup2"; Create_ConveyorGroup2(PL, ConveyorGroup2); //ConveyorGroup2.transform.Rotate(0, 180, 0); ConveyorGroup2.transform.parent = WarehouseScene.transform; ConveyorGroup2.transform.localPosition = new Vector3(0, 0, -TempValue2 / 2); //为场景添加输送设备(平行于高架库方向) GameObject ConveyorGroup = new GameObject(); ConveyorGroup.name = "ConveyorGroup"; Create_ConveyorGroup1(PL, ConveyorGroup); //ConveyorGroup.transform.Rotate(0, 180, 0); ConveyorGroup.transform.parent = WarehouseScene.transform; ConveyorGroup.transform.localPosition = new Vector3(0, 0, -TempValue2); //为场景添加高架库设备 GameObject HighBays1 = new GameObject(); HighBays1.name = "HighBayGroup"; CreateModel.HighBay2.Create_HighBays(HP, MHP, HighBays1); HighBays1.transform.parent = WarehouseScene.transform; HighBays1.transform.localPosition = new Vector3(0, 0, -(3 * TempValue1 + TempValue2)); //为场景添加堆垛机设备 GameObject PilerGroup = new GameObject(); PilerGroup.name = "PilerGroup"; Create_Pilers(PL, PilerGroup); //PilerGroup.transform.Rotate(0, 180, 0); PilerGroup.transform.parent = WarehouseScene.transform; PilerGroup.transform.localPosition = new Vector3(0, 0, -(TempValue1 + TempValue2)); //为场景添加出口输送线 GameObject ExitConveyors = new GameObject(); ExitConveyors.name = "ExitConveyors"; int i = (PL.MHP.Num + 1) / 2; float TempValue = PL.RCP.RCWidth / 2 - ((2 * i + 1) * PL.HP.Size.x + i * PL.MHP.TunnelWidth + i * PL.MHP.HookupDistance); Create_ExitConveyors(PL, ExitConveyors); ExitConveyors.transform.parent = WarehouseScene.transform; ExitConveyors.transform.localPosition = new Vector3(TempValue, 0, 0); ////给场景添加Message WarehouseScene.AddComponent <ShowData.ShowKeyPositionData>(); ShowData.ShowKeyPositionData ShowKeyData = WarehouseScene.GetComponent <ShowData.ShowKeyPositionData>(); Varibles.KeyPositionsData KPD = new Varibles.KeyPositionsData(); Create_SceneInfo(ref PL, out KPD); ShowKeyData.KeyPositionsData = KPD; GameObject Cargo = new GameObject(); Cargo.name = "Cargo"; CreateModel.Cargo1.Create_Cargo(KPD.CargoSize, Cargo); Tools.MyClass.CreatePrefab(WarehouseScene, Path); Tools.MyClass.CreatePrefab(Cargo, path2 + Cargo.name); //根据参数预创建一个存储状态面板 ControlUnit.UIControl.BinsPanel.Ajustment(MHP.Num, HP.FloorsNum, HP.ColumnsNum); ControlUnit.UIControl.BinsPanel.Ajustment2(MHP.Num, HP.FloorsNum, HP.ColumnsNum); }