/// <summary>
        /// Marks the state dirty flag; if the state is a prefab instance then disconnects the m_NodeSerialization property.
        /// <param name="owner">The target owner to mark the dirty flag.</param>
        /// </summary>
        public static void SetDirty(INodeOwner owner)
        {
            var unityObject = owner as UnityEngine.Object;

            if (!Application.isPlaying && unityObject != null)
            {
                // its a prefab Instance?
                var prefabType = UnityEditor.PrefabUtility.GetPrefabType(unityObject);
                if (prefabType != UnityEditor.PrefabType.None && prefabType != UnityEditor.PrefabType.Prefab && prefabType != UnityEditor.PrefabType.ModelPrefab)
                {
                    PropertyUtility.DisconnectPropertyFromPrefab(unityObject, "m_NodeSerialization");

                    // Workaround to disconnect ArraySize properties
                    owner.Clear();
                    PrefabUtility.RecordPrefabInstancePropertyModifications(unityObject);
                }
            }

            owner.SaveNodes();
            EditorUtility.SetDirty(unityObject);
        }
Exemple #2
0
        /// <summary> 
        /// Marks the state dirty flag; if the state is a prefab instance then disconnects the m_NodeSerialization property.
        /// <param name="owner">The target owner to mark the dirty flag.</param>
        /// </summary>
        public static void SetDirty (INodeOwner owner) {
            var unityObject = owner as UnityEngine.Object;
            if (!Application.isPlaying && unityObject != null) {
                // its a prefab Instance?
                var prefabType = UnityEditor.PrefabUtility.GetPrefabType(unityObject);
                if (prefabType != UnityEditor.PrefabType.None && prefabType != UnityEditor.PrefabType.Prefab && prefabType != UnityEditor.PrefabType.ModelPrefab) {
                    PropertyUtility.DisconnectPropertyFromPrefab(unityObject, "m_NodeSerialization");

                    // Workaround to disconnect ArraySize properties
                    owner.Clear();
                    PrefabUtility.RecordPrefabInstancePropertyModifications(unityObject);
                }
            }

            owner.SaveNodes();
            EditorUtility.SetDirty(unityObject);
        }