public static void GenerateCollider(GameObject triggerObject, WIColliderType colliderType, STransform colliderTransform) { switch (colliderType) { case WIColliderType.ConvexMesh: MeshCollider mcc = triggerObject.gameObject.GetOrAdd <MeshCollider>(); mcc.sharedMesh = triggerObject.gameObject.GetOrAdd <MeshFilter>().mesh; mcc.convex = true; break; case WIColliderType.Mesh: MeshCollider mc = triggerObject.gameObject.GetOrAdd <MeshCollider>(); mc.sharedMesh = triggerObject.gameObject.GetOrAdd <MeshFilter>().mesh; mc.convex = false; break; case WIColliderType.Box: BoxCollider bc = triggerObject.GetOrAdd <BoxCollider>(); break; case WIColliderType.Sphere: SphereCollider sc = triggerObject.GetOrAdd <SphereCollider>(); sc.radius = colliderTransform.Scale.x; sc.center = colliderTransform.Position; sc.isTrigger = true; break; case WIColliderType.Capsule: CapsuleCollider cc = triggerObject.GetOrAdd <CapsuleCollider>(); break; case WIColliderType.UseExisting: break; default: break; } }
protected void CreateCollider(WIColliderType colliderType) { switch (colliderType) { case WIColliderType.Sphere: SphereCollider sc = gameObject.GetOrAdd <SphereCollider>(); sc.center = mBaseState.ColliderTransform.Position; sc.radius = mBaseState.ColliderTransform.Scale.x; sc.isTrigger = true; break; default: BoxCollider bc = gameObject.GetOrAdd <BoxCollider>(); bc.center = mBaseState.ColliderTransform.Position; bc.size = mBaseState.ColliderTransform.Scale; bc.isTrigger = true; break; case WIColliderType.None: //it's a custom script, must be creating its own break; } }