MeshColliderExtensions.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. namespace O3DWB
  4. {
  5. public static class MeshColliderExtensions
  6. {
  7. public static void CopyDataFrom(this MeshCollider collider, MeshCollider other)
  8. {
  9. collider.convex = other.convex;
  10. collider.sharedMesh = other.sharedMesh;
  11. collider.isTrigger = other.isTrigger;
  12. collider.sharedMaterial = other.sharedMaterial;
  13. }
  14. public static MeshCollider CloneAsNewObject(this MeshCollider meshCollider, string colliderObjectName)
  15. {
  16. if (colliderObjectName == null) return null;
  17. GameObject originalObject = meshCollider.gameObject;
  18. GameObject cloneObject = new GameObject(colliderObjectName);
  19. Transform cloneObjectTransform = cloneObject.transform;
  20. Transform originalObjectTransform = originalObject.transform;
  21. cloneObjectTransform.InheritWorldTransformFrom(originalObjectTransform);
  22. MeshCollider cloneCollider = cloneObject.AddComponent<MeshCollider>();
  23. cloneCollider.CopyDataFrom(meshCollider);
  24. return cloneCollider;
  25. }
  26. }
  27. }
  28. #endif