public void ConvertRectTransformToTransform() { IsUI = false; QuickPolygon copy = Create("", ShapeMeshIndex, false); copy.transform.name = name; copy.transform.position = transform.position; copy.transform.rotation = transform.rotation; copy.transform.localScale = transform.localScale; List <Component> componentList = new List <Component>(GetComponents <Component>()); for (int i = 0; i < componentList.Count; i++) { if (componentList[i].GetComponent <Transform>() && componentList[i].GetComponent <MeshFilter>() && componentList[i].GetComponent <MeshRenderer>() && componentList[i].GetComponent <QuickPolygon>()) { componentList.Remove(GetComponent <Transform>()); componentList.Remove(GetComponent <MeshFilter>()); componentList.Remove(GetComponent <MeshRenderer>()); componentList.Remove(GetComponent <QuickPolygon>()); } if (componentList.Count > 0) { copy.gameObject.AddComponent(componentList[0].GetType()); } } SerializationClass.Deserialize(copy, SerializationClass.Serialize(this), true); Helpers.Destroy(this.gameObject); #if UNITY_EDITOR if (!Application.isPlaying) { Selection.activeObject = copy.gameObject; } #endif RecalculateMesh(); }
public static void LoadPresetFor(PresetsRecord presetRecord, QuickPolygon shape, bool loadMesh = false) { if (presetRecord == null) { throw new Exception(MSG.Errors.PRESET_LOAD_NOT_EXIST); } else { lastGOpreset = presetsContainer.GetObjectID(presetRecord); presetRecord.timesUsed++; SerializationClass.Deserialize(shape, presetRecord.polySerialised, shape.AllowLoadPresetGeometry); shape.CurrentPresetName = presetRecord.name; if (loadMesh) { shape.ShapeMeshIndex = (MeshType)presetRecord.meshType; } } }