private static Arenadata.Collider create_collider_data(Vector3 pos, Quaternion rot, Vector3 scale, Collider collider) { { var box_c = collider as BoxCollider; if (box_c != null) { var s = box_c.size; var box_data = new Arenadata.BoxShape(); var local_pos = pos + VectorOps.Mul(box_c.center, scale); box_data.Center = to_arena_type(local_pos); box_data.Rotation = to_arena_type(rot); box_data.Length = s.z; box_data.Height = s.y; box_data.Width = s.x; var collider_data = new Arenadata.Collider(); collider_data.Box = box_data; return(collider_data); } } { var sphere_c = collider as SphereCollider; if (sphere_c != null) { var sphere_data = new Arenadata.SphereShape(); var local_pos = pos + VectorOps.Mul(sphere_c.center, scale); sphere_data.Rotation = to_arena_type(rot); sphere_data.Center = to_arena_type(local_pos); sphere_data.Radius = sphere_c.radius; var collider_data = new Arenadata.Collider(); collider_data.Sphere = sphere_data; return(collider_data); } } { var capsule_c = collider as CapsuleCollider; if (capsule_c != null) { var capsule_data = new Arenadata.CapsuleShape(); var local_pos = pos + VectorOps.Mul(capsule_c.center, scale); capsule_data.Rotation = to_arena_type(rot); capsule_data.Center = to_arena_type(local_pos); capsule_data.Radius = capsule_c.radius; var collider_data = new Arenadata.Collider(); collider_data.Capsule = capsule_data; return(collider_data); } } throw new Exception("Scene contains an unsupported collider."); }