public override ObjectModel Disassemble(BoxCollider2D source, DisassemblyContext context)
        {
            Vector2Assembler assembler = new Vector2Assembler();

            return(new ObjectModel(
                       new ObjectField("Offset", assembler.DisassembleValue(source.offset, context)),
                       new ObjectField("Size", assembler.DisassembleValue(source.size, context))
                       ));
        }
        public override ObjectModel Disassemble(CircleCollider2D source, DisassemblyContext context)
        {
            Vector2Assembler vs = new Vector2Assembler();

            return(new ObjectModel(
                       new ObjectField("Radius", new PrimitiveModel(source.radius)),
                       new ObjectField("Offset", vs.DisassembleValue(source.offset, context)),
                       new ObjectField("IsTrigger", new PrimitiveModel(source.isTrigger)),
                       new ObjectField("UsedByEffector", new PrimitiveModel(source.usedByEffector))));
        }