public static GameObject ReplacePrefab(GameObject go, Object targetPrefab, HEU_ReplacePrefabOptions heuOptions)
		{
#if UNITY_EDITOR
#if UNITY_2018_3_OR_NEWER
#pragma warning disable CS0618 // Type or member is obsolete
			// This is doing the same thing as 2018.2 and earlier for now, since in 2018.3b the SavePrefab* methods don't handle
			// merging based on naming yet. (FIXME: Revisit when 2018.3 comes out of beta)
			ReplacePrefabOptions unityOptions = ReplacePrefabOptions.Default;
			switch (heuOptions)
			{
				case HEU_ReplacePrefabOptions.Default: unityOptions = ReplacePrefabOptions.Default; break;
				case HEU_ReplacePrefabOptions.ConnectToPrefab: unityOptions = ReplacePrefabOptions.ConnectToPrefab; break;
				case HEU_ReplacePrefabOptions.ReplaceNameBased: unityOptions = ReplacePrefabOptions.ReplaceNameBased; break;
				default: Debug.LogFormat("Unsupported replace prefab option: {0}", heuOptions); break;
			}

			return PrefabUtility.ReplacePrefab(go, targetPrefab, unityOptions);
#pragma warning restore CS0618 // Type or member is obsolete
#else
			ReplacePrefabOptions unityOptions = ReplacePrefabOptions.Default;
			switch(heuOptions)
			{
				case HEU_ReplacePrefabOptions.Default:			unityOptions = ReplacePrefabOptions.Default; break;
				case HEU_ReplacePrefabOptions.ConnectToPrefab:	unityOptions = ReplacePrefabOptions.ConnectToPrefab; break;
				case HEU_ReplacePrefabOptions.ReplaceNameBased: unityOptions = ReplacePrefabOptions.ReplaceNameBased; break;
				default: Debug.LogFormat("Unsupported replace prefab option: {0}", heuOptions); break;
			}

			return PrefabUtility.ReplacePrefab(go, targetPrefab, unityOptions);
#endif
#else
			Debug.LogWarning(HEU_Defines.HEU_USERMSG_NONEDITOR_NOT_SUPPORTED);
			return null;
#endif
		}
Esempio n. 2
0
        public static GameObject ReplacePrefab(GameObject go, Object targetPrefab, HEU_ReplacePrefabOptions heuOptions)
        {
#if UNITY_EDITOR
            ReplacePrefabOptions unityOptions = ReplacePrefabOptions.Default;
            switch (heuOptions)
            {
            case HEU_ReplacePrefabOptions.Default:                  unityOptions = ReplacePrefabOptions.Default; break;

            case HEU_ReplacePrefabOptions.ConnectToPrefab:  unityOptions = ReplacePrefabOptions.ConnectToPrefab; break;

            case HEU_ReplacePrefabOptions.ReplaceNameBased: unityOptions = ReplacePrefabOptions.ReplaceNameBased; break;

            default: Debug.LogFormat("Unsupported replace prefab option: {0}", heuOptions); break;
            }

            return(PrefabUtility.ReplacePrefab(go, targetPrefab, unityOptions));
#else
            Debug.LogWarning(HEU_Defines.HEU_USERMSG_NONEDITOR_NOT_SUPPORTED);
            return(null);
#endif
        }