CapsuleColliderExtensions.cs 1.3 KB

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