Unity 编辑器批量修改Prefab

最近写了些小工具,记录和分享一下

工具
  [MenuItem("Assets/工具/赋值")]
    public static void SetSelectedPrefabsValue()
    {
    
    
        Debug.Log($"数量{
      
      Selection.gameObjects.Length}");
        if (Selection.gameObjects.Length == 0)return;
        foreach (var obj in Selection.gameObjects)
        {
    
    
            GameObject go = obj;
          
            /*
            ScriptA a= go.GetComponent<ScriptA>();
            ScriptB b= go.GetComponentInChildren<ScriptB>();
            a.fireOutLine = effect;
            */
            PrefabUtility.SavePrefabAsset(go);

        }
    }

保姆教程:
注释区域写你要进行的操作,比如这里是从子物体中找到b ,赋值给a的fireOutLine 属性。
当有大量同样脚本的Prefab需要挂节点时,或者大量同类型prefab需要进行相同操作时使用。
使用方法:选中所有需要修改的Prefab,右键点击 工具/赋值 执行

Inspector 挂载属性,和Start里Find 属性

挂载属性的方式可以提高代码的可读性和可维护性,并且通常比使用 Find 查找更快。

如何在Inspector显示Private的属性
 [SerializeField] private int a;//显示私有
 [HideInInspector] public int b;//隐藏公有

猜你喜欢

转载自blog.csdn.net/hzhnzmyz/article/details/130231228