示例#1
0
    public bool CommitPrefab()
    {
        bool commited = false;

        if (this.Source == null)
        {
            Debug.Log("ERROR: No Source Prefab");
        }
        else if (this.Target == null)
        {
            Debug.Log("ERROR: No Target Prefab Instance");
        }
        else
        {
            RegisterUndo("Commiting Prefab");
            var result = PrefabUtility.ReplacePrefab(this.Target.gameObject, this.Source.gameObject, ReplacePrefabOptions.ReplaceNameBased);
            if (result != null)
            {
                string msg = string.Format("Saved {0}", this.Source.name);
                EditorUtility.DisplayDialog(GetType().Name, msg, "OK");
                commited   = true;
                this.Dirty = false;
            }
            else
            {
                string msg = string.Format("Error replacing Prefab {0}", this.Source.name);
                EditorUtility.DisplayDialog(GetType().Name, msg, "OK");
            }

            LocalizationUtils.SaveDbs();
        }

        return(commited);
    }