示例#1
0
    private static void checkPrefab(string path, SaveablePrefabRoot saveablePrefab, bool onlyValidateCurrentlyUnchecked = true)
    {
        string relativePrefabPath = path;

        ///only move the prefab when its not already located in a "Resources" folder
        if (!saveablePrefab.GetReferencer().WasAlreadyValidated || !onlyValidateCurrentlyUnchecked)
        {
            checkAsset(path, saveablePrefab,
                       p => p.gameObject.name,
                       (p, s) =>
            {
                PrefabStage prefabStage = PrefabStageUtility.GetPrefabStage(saveablePrefab.gameObject);
                if (prefabStage != null)
                {
                    EditorSceneManager.MarkSceneDirty(prefabStage.scene);
                }
                PrefabUtility.SaveAsPrefabAsset(saveablePrefab.gameObject, s);
            });
        }
    }