Example #1
0
        public static void CreatePathway(PilerParameter PP, GameObject Pathway)
        {
            //high表示堆垛机总高度
            float High   = PP.PilerHigh;
            float Length = PP.PilerLength;
            //定制上轨道
            GameObject obj1        = (GameObject)Resources.Load(Varibles.GlobalVariable.RootName + "/Piler/上轨道");
            GameObject top_pathway = Instantiate(obj1); top_pathway.name = "top_pathway";
            float      Scale1      = top_pathway.transform.localScale.x;
            Vector3    Size1       = top_pathway.GetComponent <MeshFilter>().sharedMesh.bounds.size;

            top_pathway.transform.localScale = new Vector3(Scale1, Scale1, Length / Size1.z);
            //定制下轨道
            GameObject obj2           = (GameObject)Resources.Load(Varibles.GlobalVariable.RootName + "/Piler/下轨道");
            GameObject buttom_pathway = Instantiate(obj2); buttom_pathway.name = "buttom_pathway";
            float      Scale2         = buttom_pathway.transform.localScale.x;
            Vector3    Size2          = buttom_pathway.GetComponent <MeshFilter>().sharedMesh.bounds.size;

            buttom_pathway.transform.localScale = new Vector3(Scale2, Scale2, Length / Size2.z);

            top_pathway.transform.parent           = Pathway.transform;
            top_pathway.transform.localPosition    = new Vector3(0, High / 2 - Scale1 * Size1.y / 2, 0);
            buttom_pathway.transform.parent        = Pathway.transform;
            buttom_pathway.transform.localPosition = new Vector3(0, -High / 2 + Scale2 * Size2.y / 2, 0);
        }
Example #2
0
        public static void CreatePiler(PilerParameter PP, GameObject OBJ)
        {
            float High   = PP.PilerHigh;
            float Length = PP.PilerLength;
            //float temp_high = High - 0.45f - 0.49f;//根据给定高度计算机身竖直部分长度
            // 轨道部分
            GameObject OBJ1 = new GameObject();

            OBJ1.name = "Pathway";
            CreatePathway(PP, OBJ1);
            //GameObject.Find("ScriptsContainer").GetComponent<MyClass>().Create2(OBJ1);
            // 主体机身部分
            GameObject obj = (GameObject)Resources.Load(Varibles.GlobalVariable.RootName + "/Piler/body2");
            //GameObject obj_1 = Instantiate(obj);
            float   Scale    = obj.transform.localScale.z;
            Vector3 obj_size = obj.GetComponent <MeshFilter>().sharedMesh.bounds.size; //Debug.Log(obj_size);
                                                                                       //DestroyImmediate(obj)

            GameObject OBJ2 = new GameObject();

            OBJ2.name = "BodyPart";
            CreateBodyPart(PP, OBJ2);

            OBJ1.transform.parent        = OBJ.transform;
            OBJ2.transform.parent        = OBJ.transform;
            OBJ1.transform.localPosition = new Vector3(0, High / 2, -Length / 2);
            OBJ2.transform.localPosition = new Vector3(0, 0, -Scale * obj_size.z / 2);

            //OBJ.AddComponent<OperatingState>().state = State.Off;
        }
Example #3
0
        public static void CreateBodyPart(PilerParameter PP, GameObject BodyPart)
        {
            float temp_high = 0.15f; //上轨道与body主体之间的宽度
                                     // 上轨道信息
            GameObject obj0   = (GameObject)Resources.Load(Varibles.GlobalVariable.RootName + "/Piler/上轨道");
            float      Scale0 = obj0.transform.localScale.x;
            Vector3    Size0  = obj0.GetComponent <MeshFilter>().sharedMesh.bounds.size;
            // 加载关键构件
            GameObject obj3 = (GameObject)Resources.Load(Varibles.GlobalVariable.RootName + "/Piler/body1");       //上滚轴
            GameObject obj4 = (GameObject)Resources.Load(Varibles.GlobalVariable.RootName + "/Piler/body2");       //下滚轴
            GameObject obj5 = (GameObject)Resources.Load(Varibles.GlobalVariable.RootName + "/Piler/body0");       //竖直机身
            GameObject obj6 = (GameObject)Resources.Load(Varibles.GlobalVariable.RootName + "/Piler/ElectricBox"); //电箱部分
            //上滚轴、下滚轴信息
            GameObject top_body = Instantiate(obj3); float Scale1 = top_body.transform.localScale.x;
            Vector3    topbody_size = top_body.GetComponent <MeshFilter>().sharedMesh.bounds.size;       //上滚轴尺寸信息
            GameObject buttom_body = Instantiate(obj4); float Scale2 = buttom_body.transform.localScale.x;
            Vector3    buttombody_size = buttom_body.GetComponent <MeshFilter>().sharedMesh.bounds.size; //下滚轴尺寸信息
                                                                                                         //主体body尺寸
            float BodyHigh = PP.PilerHigh - Scale0 * Size0.y - Scale2 * buttombody_size.y - temp_high;   //计算主体body高度值
                                                                                                         //Debug.Log(PP.PilerHigh); Debug.Log(Scale0 * Size0.y); Debug.Log(Scale2 * buttombody_size.y);
            GameObject middle_body = Instantiate(obj5); float Scale3 = middle_body.transform.localScale.x;
            Vector3    middlebody_size = middle_body.GetComponent <MeshFilter>().sharedMesh.bounds.size;

            middle_body.transform.localScale = new Vector3(Scale3, BodyHigh / middlebody_size.y, Scale3);
            // 电箱部分
            GameObject ElectricBox      = Instantiate(obj6);
            Vector3    ElectricBox_size = new Vector3(1.533f, 2.6f, 1.01f);//电箱尺寸

            //组合设计
            top_body.transform.parent           = BodyPart.transform;
            middle_body.transform.parent        = BodyPart.transform;
            buttom_body.transform.parent        = BodyPart.transform;
            buttom_body.transform.localPosition = new Vector3(0, Scale2 * buttombody_size.y / 2, 0);
            middle_body.transform.localPosition = new Vector3(0, Scale2 * buttombody_size.y + BodyHigh / 2, 0);
            top_body.transform.localPosition    = new Vector3(0, Scale2 * buttombody_size.y + BodyHigh + Scale1 * topbody_size.y / 2 - 0.062f, 0);
            Vector3 EB_position = new Vector3(0, 0, 0); EB_position.y = ElectricBox_size.y / 2 + Scale2 * buttombody_size.y + 0.09f;

            EB_position.z = middle_body.transform.localPosition.z + Scale3 * middlebody_size.z / 2 + ElectricBox_size.z / 2;
            ElectricBox.transform.parent = BodyPart.transform; ElectricBox.transform.localPosition = EB_position;
            //增加上下移动部分
            GameObject obj7 = (GameObject)Resources.Load(Varibles.GlobalVariable.RootName + "/Piler/UpPart");//上下移动部分
            GameObject UpPart = Instantiate(obj7); UpPart.name = "UpPart"; float Scale7 = UpPart.transform.localScale.x;

            UpPart.transform.parent = BodyPart.transform;
            Vector3 UpPart_size = new Vector3(0, 0, 0); //Debug.Log(2);

            Tools.MyClass.MeshSize(UpPart, ref UpPart_size);
            //Debug.Log(UpPart_size);
            Vector3 Up_position = new Vector3(0, 0, 0); Up_position.y = Scale2 * buttombody_size.y + Scale7 * UpPart_size.y / 2;

            Up_position.z = middle_body.transform.localPosition.z - Scale3 * middlebody_size.z / 2 - Scale7 * UpPart_size.z / 2 + 0.12f;
            //Debug.Log(Up_position);
            UpPart.transform.localPosition = Up_position; //Debug.Log(1);
        }
Example #4
0
        public static void Create(PilerParameter PP, GameObject OBJ)
        {
            //float High = high-0.1f;//堆垛机的高
            //float Length = length;//堆垛机轨道长度

            //GameObject OBJ1 = new GameObject();
            //OBJ1.name = OBJ.name;
            //OBJ1.transform.parent = OBJ.transform;
            CreatePiler(PP, OBJ);
            //OBJ1.transform.localPosition = new Vector3(0, 0, Length / 2);
        }