Ejemplo n.º 1
0
        public PhysicalObject Clone()
        {
            PhysicalObject po = (PhysicalObject)MemberwiseClone();

            po.visualSet = new VisualSetLOD[visualSet.Length];
            po.Reset();
            for (int i = 0; i < visualSet.Length; i++)
            {
                po.visualSet[i].LODdistance = visualSet[i].LODdistance;
                po.visualSet[i].off_data    = visualSet[i].off_data;
                po.visualSet[i].obj         = visualSet[i].obj.Clone();
            }
            if (collideMesh != null)
            {
                po.collideMesh = collideMesh.Clone();
            }
            return(po);
        }
Ejemplo n.º 2
0
        public PhysicalObject Clone()
        {
            PhysicalObject po = (PhysicalObject)MemberwiseClone();

            po.visualSet = new VisualSetLOD[visualSet.Length];
            po.Reset();
            for (int i = 0; i < visualSet.Length; i++)
            {
                po.visualSet[i].LODdistance = visualSet[i].LODdistance;
                po.visualSet[i].off_data    = visualSet[i].off_data;
                po.visualSet[i].obj         = visualSet[i].obj.Clone();
                if (po.visualSet[i].obj is GeometricObject)
                {
                    GeometricObject m = ((GeometricObject)po.visualSet[i].obj);
                    if (m.name != "Mesh")
                    {
                        po.Gao.name = "[PO] " + m.name;
                    }
                    m.Gao.transform.parent = po.Gao.transform;
                }
            }
            if (po.visualSet.Length > 1)
            {
                float bestLOD = po.visualSet.Min(v => v.LODdistance);
                foreach (VisualSetLOD lod in po.visualSet)
                {
                    if (lod.obj.Gao != null && lod.LODdistance != bestLOD)
                    {
                        lod.obj.Gao.SetActive(false);
                    }
                }
            }
            if (collideMesh != null)
            {
                po.collideMesh = collideMesh.Clone();
                po.collideMesh.gao.transform.parent = po.Gao.transform;
            }
            return(po);
        }