SphereColliderExtensions.cs 1.2 KB

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