Esempio n. 1
0
        public static void AddExtends()
        {
            // Vector4 exporter
            ExporterFunc <Vector4> vector4Exporter = new ExporterFunc <Vector4>(ExportVector4);

            JsonMapper.RegisterExporter <Vector4>(vector4Exporter);

            // Vector3 exporter
            ExporterFunc <Vector3> vector3Exporter = new ExporterFunc <Vector3>(ExportVector3);

            JsonMapper.RegisterExporter <Vector3>(vector3Exporter);

            // Vector2 exporter
            ExporterFunc <Vector2> vector2Exporter = new ExporterFunc <Vector2>(ExportVector2);

            JsonMapper.RegisterExporter <Vector2>(vector2Exporter);

            ExporterFunc <Quaternion> quaternionExporter = new ExporterFunc <Quaternion>(ExportQuaternion);

            JsonMapper.RegisterExporter <Quaternion>(quaternionExporter);

//            // float to double
//            ExporterFunc<float> float2double = new ExporterFunc<float>(JsonExtend.float2double);
//            JsonMapper.RegisterExporter<float>(float2double);
//
//            // double to float
//            ImporterFunc<double, Single> double2float = new ImporterFunc<double, Single>(JsonExtend.double2float);
//            JsonMapper.RegisterImporter<double, Single>(double2float);
        }
Esempio n. 2
0
        public static void AddExtentds()
        {
            // Rect exporter
            ExporterFunc <UnityEngine.Rect> rectExporter = new ExporterFunc <UnityEngine.Rect>(JsonExtend.rectexp);

            JsonMapper.RegisterExporter <UnityEngine.Rect>(rectExporter);

            // UnityEngine.Color exporter
            ExporterFunc <UnityEngine.Color> colorExporter = new ExporterFunc <UnityEngine.Color>(JsonExtend.colorexp);

            JsonMapper.RegisterExporter <UnityEngine.Color>(colorExporter);

            // UnityEngine.GameObject exporter
            ExporterFunc <UnityEngine.GameObject> gameObjectExporter = new ExporterFunc <UnityEngine.GameObject>(JsonExtend.gameObjexp);

            JsonMapper.RegisterExporter <UnityEngine.GameObject>(gameObjectExporter);

            // UnityEngine.Quaternion exporter
            ExporterFunc <UnityEngine.Quaternion> quaternionExporter = new ExporterFunc <UnityEngine.Quaternion>(JsonExtend.quaternionexp);

            JsonMapper.RegisterExporter <UnityEngine.Quaternion>(quaternionExporter);

            // UnityEngine.Object exporter
            ExporterFunc <UnityEngine.Object> objectExporter = new ExporterFunc <UnityEngine.Object>(JsonExtend.objectexp);

            JsonMapper.RegisterExporter <UnityEngine.Object>(objectExporter);

            // Vector4 exporter
            ExporterFunc <Vector4> vector4Exporter = new ExporterFunc <Vector4>(JsonExtend.vector4exp);

            JsonMapper.RegisterExporter <Vector4>(vector4Exporter);

            // Vector3 exporter
            ExporterFunc <Vector3> vector3Exporter = new ExporterFunc <Vector3>(JsonExtend.vector3exp);

            JsonMapper.RegisterExporter <Vector3>(vector3Exporter);

            // Vector2 exporter
            ExporterFunc <Vector2> vector2Exporter = new ExporterFunc <Vector2>(JsonExtend.vector2exp);

            JsonMapper.RegisterExporter <Vector2>(vector2Exporter);

            // float to double
            ExporterFunc <float> float2double = new ExporterFunc <float>(JsonExtend.float2double);

            JsonMapper.RegisterExporter <float>(float2double);

            // double to float
            ImporterFunc <double, Single> double2float = new ImporterFunc <double, Single>(JsonExtend.double2float);

            JsonMapper.RegisterImporter <double, Single>(double2float);
        }
Esempio n. 3
0
        public static void AddExtentds()
        {
            // Vector4 exporter
            ExporterFunc <Vector4> vector4Exporter = new ExporterFunc <Vector4>(JsonExtend.vector4exp);

            JsonMapper.RegisterExporter <Vector4>(vector4Exporter);

            // Vector3 exporter
            ExporterFunc <Vector3> vector3Exporter = new ExporterFunc <Vector3>(JsonExtend.vector3exp);

            JsonMapper.RegisterExporter <Vector3>(vector3Exporter);

            // Vector2 exporter
            ExporterFunc <Vector2> vector2Exporter = new ExporterFunc <Vector2>(JsonExtend.vector2exp);

            JsonMapper.RegisterExporter <Vector2>(vector2Exporter);

            // float to double
            ExporterFunc <float> float2double = new ExporterFunc <float>(JsonExtend.float2double);

            JsonMapper.RegisterExporter <float>(float2double);

            // double to float
            ImporterFunc <double, Single> double2float = new ImporterFunc <double, Single>(JsonExtend.double2float);

            JsonMapper.RegisterImporter <double, Single>(double2float);

            // string to vector3
            ImporterFunc <string, Vector3> string2vector3 = new ImporterFunc <string, Vector3>(JsonExtend.string2vector3);

            JsonMapper.RegisterImporter <string, Vector3>(string2vector3);

            // string to int
            ImporterFunc <string, int> string2int = new ImporterFunc <string, int>(JsonExtend.string2int);

            JsonMapper.RegisterImporter <string, int>(string2int);

            JsonMapper.RegisterImporter <int, long>((int value) => {
                return((long)value);
            });

            JsonMapper.RegisterImporter <uint, Int64>((uint value) => {
                return((Int64)value);
            });
        }
Esempio n. 4
0
        public static void Register()
        {
            // 注册Type类型的Exporter
            JsonMapper.RegisterExporter <Type>((v, w) =>
            {
                w.Write(v.FullName);
            });

            JsonMapper.RegisterImporter <string, Type>((s) =>
            {
                return(Type.GetType(s));
            });

            // 注册Vector2类型的Exporter
            Action <UnityEngine.Vector2, JsonWriter> writeVector2 = (v, w) =>
            {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteObjectEnd();
            };

            JsonMapper.RegisterExporter <UnityEngine.Vector2>((v, w) =>
            {
                writeVector2(v, w);
            });

            // 注册Vector3类型的Exporter
            Action <UnityEngine.Vector3, JsonWriter> writeVector3 = (v, w) =>
            {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("z", v.z);
                w.WriteObjectEnd();
            };

            JsonMapper.RegisterExporter <UnityEngine.Vector3>((v, w) =>
            {
                writeVector3(v, w);
            });

            // 注册Vector4类型的Exporter
            JsonMapper.RegisterExporter <UnityEngine.Vector4>((v, w) =>
            {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("z", v.z);
                w.WriteProperty("w", v.w);
                w.WriteObjectEnd();
            });

            // 注册Quaternion类型的Exporter
            JsonMapper.RegisterExporter <UnityEngine.Quaternion>((v, w) =>
            {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("z", v.z);
                w.WriteProperty("w", v.w);
                w.WriteObjectEnd();
            });

            // 注册Color类型的Exporter
            JsonMapper.RegisterExporter <UnityEngine.Color>((v, w) =>
            {
                w.WriteObjectStart();
                w.WriteProperty("r", v.r);
                w.WriteProperty("g", v.g);
                w.WriteProperty("b", v.b);
                w.WriteProperty("a", v.a);
                w.WriteObjectEnd();
            });

            // 注册Color32类型的Exporter
            JsonMapper.RegisterExporter <UnityEngine.Color32>((v, w) =>
            {
                w.WriteObjectStart();
                w.WriteProperty("r", v.r);
                w.WriteProperty("g", v.g);
                w.WriteProperty("b", v.b);
                w.WriteProperty("a", v.a);
                w.WriteObjectEnd();
            });

            // 注册Bounds类型的Exporter
            JsonMapper.RegisterExporter <UnityEngine.Bounds>((v, w) =>
            {
                w.WriteObjectStart();

                w.WritePropertyName("center");
                writeVector3(v.center, w);

                w.WritePropertyName("size");
                writeVector3(v.size, w);

                w.WriteObjectEnd();
            });

            // 注册Rect类型的Exporter
            JsonMapper.RegisterExporter <UnityEngine.Rect>((v, w) =>
            {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("width", v.width);
                w.WriteProperty("height", v.height);
                w.WriteObjectEnd();
            });

            // 注册RectOffset类型的Exporter
            JsonMapper.RegisterExporter <UnityEngine.RectOffset>((v, w) =>
            {
                w.WriteObjectStart();
                w.WriteProperty("top", v.top);
                w.WriteProperty("left", v.left);
                w.WriteProperty("bottom", v.bottom);
                w.WriteProperty("right", v.right);
                w.WriteObjectEnd();
            });
        }
Esempio n. 5
0
        public static void Register()
        {
            if (registerd)
            {
                return;
            }
            registerd = true;

            // If you seralize using WriteProperty()
            // LitJson will attempt to bind property
            // names to class members instead of using
            // an importer.

            // -- Type
            JsonMapper.RegisterExporter <Type>((v, w) => {
                w.Write(v.FullName);
            });

            JsonMapper.RegisterImporter <string, Type>((s) => {
                return(Type.GetType(s));
            });

            // -- Vector2
            Action <Vector2, JsonWriter> writeVector2 = (v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteObjectEnd();
            };

            JsonMapper.RegisterExporter <Vector2>((v, w) => {
                writeVector2(v, w);
            });

            // -- Vector3
            Action <Vector3, JsonWriter> writeVector3 = (v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("z", v.z);
                w.WriteObjectEnd();
            };

            JsonMapper.RegisterExporter <Vector3>((v, w) => {
                writeVector3(v, w);
            });

            // -- Vector4
            JsonMapper.RegisterExporter <Vector4>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("z", v.z);
                w.WriteProperty("w", v.w);
                w.WriteObjectEnd();
            });

            // -- Quaternion
            JsonMapper.RegisterExporter <Quaternion>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("z", v.z);
                w.WriteProperty("w", v.w);
                w.WriteObjectEnd();
            });

            // -- Color
            JsonMapper.RegisterExporter <Color>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("r", v.r);
                w.WriteProperty("g", v.g);
                w.WriteProperty("b", v.b);
                w.WriteProperty("a", v.a);
                w.WriteObjectEnd();
            });

            // -- Color32
            JsonMapper.RegisterExporter <Color32>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("r", v.r);
                w.WriteProperty("g", v.g);
                w.WriteProperty("b", v.b);
                w.WriteProperty("a", v.a);
                w.WriteObjectEnd();
            });

            // -- Bounds
            JsonMapper.RegisterExporter <Bounds>((v, w) => {
                w.WriteObjectStart();

                w.WritePropertyName("center");
                writeVector3(v.center, w);

                w.WritePropertyName("size");
                writeVector3(v.size, w);

                w.WriteObjectEnd();
            });

            // -- Rect
            JsonMapper.RegisterExporter <Rect>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("width", v.width);
                w.WriteProperty("height", v.height);
                w.WriteObjectEnd();
            });

            // -- RectOffset
            JsonMapper.RegisterExporter <RectOffset>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("top", v.top);
                w.WriteProperty("left", v.left);
                w.WriteProperty("bottom", v.bottom);
                w.WriteProperty("right", v.right);
                w.WriteObjectEnd();
            });
        }
        public static void Register()
        {
            if (registerd)
            {
                return;
            }
            registerd = true;

            // If you seralize using WriteProperty()
            // LitJson will attempt to bind property
            // names to class members instead of using
            // an importer.

            // -- Type
            JsonMapper.RegisterExporter <Type>((v, w) => {
                w.Write(v.FullName);
            });

            JsonMapper.RegisterImporter <string, Type>((s) => {
                return(Type.GetType(s));
            });
            //DateTimeOffset
            //Action<DateTimeOffset, JsonWriter> writeDateTimeOffset = (v, w) => {
            //    //{"D1":"2018-03-21T03:54:36.2747187Z","D2":"2018-03-21T03:54:36.2747187+00:00"}
            //    w.WriteObjectStart();
            //    //w.WriteProperty("D1", string.Format("{0}-{1}-{2}T{3}:{4}:{5}Z",
            //    //    v.Year,v.Month,v.Date,
            //    //    v.Hour,v.Minute,v.Second+v.Millisecond*0.001f));
            //    w.WriteProperty("D2", string.Format("{0}-{1}-{2}T{3}:{4}:{5}+{6}:{7}",
            //         v.Year, v.Month, v.Date,
            //         v.Hour, v.Minute, v.Second + v.Millisecond * 0.001f,
            //         //时区
            //         "00","00"
            //         ));
            //    w.WriteObjectEnd();

            //};
            //JsonMapper.RegisterExporter<DateTimeOffset>((v,w)=> {
            //    writeDateTimeOffset(v,w);
            //});
            ////Action<DateTimeOffset, JsonReader> readDateTimeOffset=((v,r)=> {
            ////    //怎么读呢
            ////});
            ////JsonMapper.RegisterImporter((s) => {
            ////    return
            ////});
            //JsonMapper.RegisterFactory<DateTimeOffset>(()=> {
            //    return new DateTimeOffset();
            //});
            // -- Vector2
            Action <Vector2, JsonWriter> writeVector2 = (v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteObjectEnd();
            };

            JsonMapper.RegisterExporter <Vector2>((v, w) => {
                writeVector2(v, w);
            });

            // -- Vector3
            Action <Vector3, JsonWriter> writeVector3 = (v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("z", v.z);
                w.WriteObjectEnd();
            };

            JsonMapper.RegisterExporter <Vector3>((v, w) => {
                writeVector3(v, w);
            });

            // -- Vector4
            JsonMapper.RegisterExporter <Vector4>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("z", v.z);
                w.WriteProperty("w", v.w);
                w.WriteObjectEnd();
            });

            // -- Quaternion
            JsonMapper.RegisterExporter <Quaternion>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("z", v.z);
                w.WriteProperty("w", v.w);
                w.WriteObjectEnd();
            });

            // -- Color
            JsonMapper.RegisterExporter <Color>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("r", v.r);
                w.WriteProperty("g", v.g);
                w.WriteProperty("b", v.b);
                w.WriteProperty("a", v.a);
                w.WriteObjectEnd();
            });

            // -- Color32
            JsonMapper.RegisterExporter <Color32>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("r", v.r);
                w.WriteProperty("g", v.g);
                w.WriteProperty("b", v.b);
                w.WriteProperty("a", v.a);
                w.WriteObjectEnd();
            });

            // -- Bounds
            JsonMapper.RegisterExporter <Bounds>((v, w) => {
                w.WriteObjectStart();

                w.WritePropertyName("center");
                writeVector3(v.center, w);

                w.WritePropertyName("size");
                writeVector3(v.size, w);

                w.WriteObjectEnd();
            });

            // -- Rect
            JsonMapper.RegisterExporter <Rect>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("x", v.x);
                w.WriteProperty("y", v.y);
                w.WriteProperty("width", v.width);
                w.WriteProperty("height", v.height);
                w.WriteObjectEnd();
            });

            // -- RectOffset
            JsonMapper.RegisterExporter <RectOffset>((v, w) => {
                w.WriteObjectStart();
                w.WriteProperty("top", v.top);
                w.WriteProperty("left", v.left);
                w.WriteProperty("bottom", v.bottom);
                w.WriteProperty("right", v.right);
                w.WriteObjectEnd();
            });
        }