using System;
using System.Text;
using System.Text.RegularExpressions;
using UnityEditor;
using UnityEngine;
public class HierarchyEditor
{
[MenuItem("GameObject/向下复制一个",priority =0)]
public static void CopyNext()
{
GameObject proto = Selection.activeGameObject;
if(proto==null)
{
return;
}
GameObject prefab = PrefabUtility.GetNearestPrefabInstanceRoot(proto);
if(prefab!=null)
{
PrefabUtility.UnpackPrefabInstance(prefab, PrefabUnpackMode.Completely, InteractionMode.UserAction);
}
GameObject nextObj = GameObject.Instantiate(proto);
nextObj.transform.SetParent(proto.transform.parent);
nextObj.transform.SetAsLastSibling();
IterName(nextObj, proto);
}
private static void IterName(GameObject obj,GameObject copyObj)
{
string name = copyObj.name;
StringBuilder newName = new StringBuilder();
for (int i = 0; i < name.Length; i++)
{
if(name[i]>='0'&&name[i]<='9')
{
newName.Append(((name[i] - '0') + 1).ToString());
}
else
{
newName.Append(name[i]);
}
}
obj.name = newName.ToString();
if(obj.transform.childCount>0)
{
for (int i = 0; i < obj.transform.childCount&&i<copyObj.transform.GetChild(i).childCount; i++)
{
if(copyObj.transform.GetChild(i).gameObject.hideFlags != HideFlags.HideAndDontSave)
{
IterName(obj.transform.GetChild(i).gameObject, copyObj.transform.GetChild(i).gameObject);
}
}
}
}
}
《编辑器工具》按数字向下复制一个
最新推荐文章于 2023-07-28 10:11:11 发布