Ejemplo n.º 1
0
        private static void Apply(ComponentSaveDataKey key)
        {
            var obj = EditorUtility.InstanceIDToObject(key.objId) as GameObject;

            if (obj == null)
            {
                return;
            }
            var data          = _compData[key].serializedObj;
            var serializedObj = new SerializedObject(data.targetObject);
            var prop          = data.GetIterator();

            while (prop.NextVisible(true))
            {
                serializedObj.CopyFromSerializedProperty(prop);
            }
            serializedObj.ApplyModifiedProperties();
            _compData.Remove(key);
        }
Ejemplo n.º 2
0
        private static void Add(Component component, SaveCommand cmd)
        {
            var compId = component.GetInstanceID();
            var objId  = component.gameObject.GetInstanceID();
            var key    = new ComponentSaveDataKey(objId, compId);
            var data   = new SerializedObject(component);

            if (_compData.ContainsKey(key))
            {
                _compData[key] = new SaveDataValue(data, cmd);
            }
            else
            {
                _compData.Add(key, new SaveDataValue(data, cmd));
            }
            var prop = new SerializedObject(component).GetIterator();

            while (prop.NextVisible(true))
            {
                data.CopyFromSerializedProperty(prop);
            }
        }