Ejemplo n.º 1
0
        public void OnBeforeSerialize()
        {
            if (serialized)
            {
                return;
            }
            serialized = true;

            store.Clear();
            store = SaveToStore(parameters);
        }
Ejemplo n.º 2
0
        SerializedObjectStore SaveToStore(Dictionary <string, object> dict)
        {
            SerializedObjectStore store = new SerializedObjectStore();

            foreach (KeyValuePair <string, object> pair in dict)
            {
                Type type = pair.Value.GetType();
                switch (type.Name)
                {
                case "Int32":
                    store.intValues.Add(pair.Key, (int)pair.Value);
                    break;

                case "Single":
                    store.floatValues.Add(pair.Key, (float)pair.Value);
                    break;

                case "Boolean":
                    store.boolValues.Add(pair.Key, (bool)pair.Value);
                    break;

                case "Vector2":
                    store.vec2Values.Add(pair.Key, (Vector2)pair.Value);
                    break;

                case "Vector3":
                    store.vec3Values.Add(pair.Key, (Vector3)pair.Value);
                    break;

                case "Vector4":
                    store.vec4Values.Add(pair.Key, (Vector4)pair.Value);
                    break;

                case "AnimationCurve":
                    store.animCurveValues.Add(pair.Key, (AnimationCurve)pair.Value);
                    break;

                case "Color":
                    store.colorValues.Add(pair.Key, (Color)pair.Value);
                    break;
                }
            }
            return(store);
        }
Ejemplo n.º 3
0
        Dictionary <string, object> LoadFromStore(SerializedObjectStore store)
        {
            Dictionary <string, object> merged = new Dictionary <string, object>();

            foreach (KeyValuePair <string, int> pair in store.intValues)
            {
                merged.Add(pair.Key, pair.Value);
            }
            foreach (KeyValuePair <string, float> pair in store.floatValues)
            {
                merged.Add(pair.Key, pair.Value);
            }
            foreach (KeyValuePair <string, bool> pair in store.boolValues)
            {
                merged.Add(pair.Key, pair.Value);
            }
            foreach (KeyValuePair <string, Vector2> pair in store.vec2Values)
            {
                merged.Add(pair.Key, pair.Value);
            }
            foreach (KeyValuePair <string, Vector3> pair in store.vec3Values)
            {
                merged.Add(pair.Key, pair.Value);
            }
            foreach (KeyValuePair <string, Vector4> pair in store.vec4Values)
            {
                merged.Add(pair.Key, pair.Value);
            }
            foreach (KeyValuePair <string, AnimationCurve> pair in store.animCurveValues)
            {
                merged.Add(pair.Key, pair.Value);
            }
            foreach (KeyValuePair <string, Color> pair in store.colorValues)
            {
                merged.Add(pair.Key, pair.Value);
            }
            return(merged);
        }