ZeroVR/ZeroPacientVR/Assets/Octave3D World Builder/Scripts/Extensions/CapsuleColliderExtensions.cs

36 lines
1.3 KiB
C#

#if UNITY_EDITOR
using UnityEngine;
namespace O3DWB
{
public static class CapsuleColliderExtensions
{
public static void CopyDataFrom(this CapsuleCollider collider, CapsuleCollider other)
{
collider.center = other.center;
collider.radius = other.radius;
collider.height = other.height;
collider.direction = other.direction;
collider.isTrigger = other.isTrigger;
collider.sharedMaterial = other.sharedMaterial;
}
public static CapsuleCollider CloneAsNewObject(this CapsuleCollider capsuleCollider, string colliderObjectName)
{
if (colliderObjectName == null) return null;
GameObject originalObject = capsuleCollider.gameObject;
GameObject cloneObject = new GameObject(colliderObjectName);
Transform cloneObjectTransform = cloneObject.transform;
Transform originalObjectTransform = originalObject.transform;
cloneObjectTransform.InheritWorldTransformFrom(originalObjectTransform);
CapsuleCollider cloneCollider = cloneObject.AddComponent<CapsuleCollider>();
cloneCollider.CopyDataFrom(capsuleCollider);
return cloneCollider;
}
}
}
#endif