Prefab Variant 、便利ですよね。
今回はそれをスクリプト経由で作成する方法の紹介です。
といってもそれ専用のメソッドがあるわけでも無く、以下の処理で自動的に作成されます。
var go = (GameObject) PrefabUtility.InstantiatePrefab(_prefabPath); // こっちでも良い // var go = (GameObject) PrefabUtility.LoadPrefabContents(_prefabPath); // なんかいじる go.GetComponent<MeshRenderer>().sharedMaterials[0] = null; // 別名で保存すると、 Prefab Variant として保存される var path = Path.GetFineNameWithoutExtension(_prefabPath); PrefabUtility.SaveAsPrefabAsset(go, $"{path}_1.prefab");
ということで、メモでした。