MA_TextureAtlasser/Assets/MA_ToolBox/MA_Utilities/PrefabUtils/MA_PrefabUtils.cs

41 lines
1.1 KiB
C#
Raw Normal View History

//-
#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;
namespace MA_Toolbox.Utils.Editor
{
public static class MA_PrefabUtils
{
public static string CreatePrefab(string prefabName, string savePath)
{
if(string.IsNullOrEmpty(prefabName) || string.IsNullOrWhiteSpace(prefabName))
{
Debug.LogError("Invalid prefab name.");
return null;
}
GameObject gameObject = new GameObject
{
name = prefabName
};
string assetPath = savePath + prefabName + ".prefab";
PrefabUtility.SaveAsPrefabAsset(gameObject, assetPath);
UnityEngine.Object.DestroyImmediate(gameObject);
return assetPath;
}
public static void AddChild(GameObject prefab, GameObject child)
{
GameObject p = PrefabUtility.InstantiatePrefab(prefab) as GameObject;
child.transform.SetParent(p.transform);
PrefabUtility.ApplyPrefabInstance(p, InteractionMode.AutomatedAction);
UnityEngine.Object.DestroyImmediate(p);
}
}
}
#endif