コード例 #1
0
    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.");
    }