コード例 #1
0
        static void ApplyAllPrefab(Transform root)
        {
            int count = root.childCount;

            for (int i = 0; i < count; i++)
            {
                Transform trans = root.GetChild(i);
                ApplyAllPrefab(trans);
                PrefabLoader loader = trans.GetComponent <PrefabLoader>();
                if (loader != null && loader.mChild != null)
                {
                    GameObject loaderGo    = loader.mChild.gameObject;
                    Object     childPrefab = PrefabUtility.GetPrefabParent(loaderGo);
                    if (childPrefab != null)
                    {
                        PrefabUtility.ReplacePrefab(loaderGo, childPrefab, ReplacePrefabOptions.ConnectToPrefab);
                    }
                }
            }
        }
コード例 #2
0
        static void FindPrefabLoader(Transform root, ref List <PrefabLoader> loaders)
        {
            int count = root.childCount;

            for (int i = 0; i < count; i++)
            {
                Transform    trans  = root.GetChild(i);
                PrefabLoader loader = trans.GetComponent <PrefabLoader>();
                if (loader != null)
                {
                    if (loader.transform.childCount > 0)
                    {
                        loaders.Add(loader);
                    }
                }
                else
                {
                    FindPrefabLoader(trans, ref loaders);
                }
            }
        }