Unity エディターでプレハブをバッチで変更する

最近、いくつかの小さなツールを作成し、記録して共有しました

道具
  [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);

        }
    }

Nanny チュートリアル:
コメント エリアに実行したい操作を記述します。たとえば、サブオブジェクトから b を検索し、それを a の fireOutLine 属性に割り当てます。
これは、ノードにマウントする必要がある同じスクリプトを持つ多数のプレハブがある場合、または同じタイプの多数のプレハブが同じ操作を実行する必要がある場合に使用されます。
使用手順: 変更する必要があるすべてのプレハブを選択し、右クリックして [ツール/割り当ての実行] を選択します。

Inspector のマウント属性、および Start の Find 属性

プロパティをマウントすると、コードの可読性と保守性が向上し、多くの場合、検索を使用するよりも高速になります。

インスペクターでプライベートプロパティを表示する方法
 [SerializeField] private int a;//显示私有
 [HideInInspector] public int b;//隐藏公有

おすすめ

転載: blog.csdn.net/hzhnzmyz/article/details/130231228