public void Set(BuildTargetGroup g, object value)
        {
            if (value == null)
            {
                Remove(g);
                return;
            }

            bool defaultNeedsUpdate = false;

            if (m_className != value.GetType().AssemblyQualifiedName)
            {
                m_values.Clear();
                m_className        = value.GetType().AssemblyQualifiedName;
                defaultNeedsUpdate = true;
            }

            int i    = m_values.FindIndex(v => v.targetGroup == g);
            var json = CustomScriptUtility.EncodeString(JsonUtility.ToJson(value));

            if (i >= 0)
            {
                m_values [i].value    = json;
                m_values [i].instance = value;
            }
            else
            {
                m_values.Add(new Entry(g, json, value));
                if (defaultNeedsUpdate && g != BuildTargetUtility.DefaultTarget)
                {
                    m_values.Add(new Entry(BuildTargetUtility.DefaultTarget, json, value));
                }
            }
        }
Пример #2
0
        public SerializedInstance(T obj)
        {
            UnityEngine.Assertions.Assert.IsNotNull(obj);

            m_className    = obj.GetType().AssemblyQualifiedName;
            m_instanceData = CustomScriptUtility.EncodeString(JsonUtility.ToJson(obj));
        }
Пример #3
0
 public void Save()
 {
     if (m_component != null)
     {
         m_componentData = CustomScriptUtility.EncodeString(EditorJsonUtility.ToJson(m_component));
     }
 }
Пример #4
0
 public void Save()
 {
     if (m_object != null)
     {
         m_className    = m_object.GetType().AssemblyQualifiedName;
         m_instanceData = CustomScriptUtility.EncodeString(JsonUtility.ToJson(m_object));
     }
 }
 public SerializableMultiTargetInstance(string assemblyQualifiedName, SerializableMultiTargetString instanceData)
 {
     m_className = assemblyQualifiedName;
     m_values    = new List <Entry>(instanceData.Values.Count);
     foreach (var v in instanceData.Values)
     {
         m_values.Add(new Entry(v.targetGroup, CustomScriptUtility.EncodeString(v.value), null));
     }
 }
Пример #6
0
 public void Save()
 {
     if (m_gameObject != null)
     {
         m_instanceData = CustomScriptUtility.EncodeString(EditorJsonUtility.ToJson(m_gameObject));
     }
     foreach (var info in m_attachedComponents)
     {
         info.Save();
     }
 }