Exemplo n.º 1
0
 internal static void ModifyKitPrefabs(Settings.InitializationType initializationType)
 {
     // Use imported kits instead of installed kits. If the user has dragged the prefab
     // into a scene but has not finished onboarding completely, we need to remove the
     // attached script.
     foreach (ImportedKit kit in Controller.KitUtils.ListImportedKits(null)())
     {
         ModifyKitPrefab(kit.Name, initializationType);
     }
 }
Exemplo n.º 2
0
        internal static void ModifyKitPrefab(string kit, Settings.InitializationType initializationType)
        {
            string     gameObjectName       = kit + "Init";
            string     gameObjectScriptName = kit + "Init";
            GameObject gameObject           = null;

            foreach (GameObject obj in UnityEngine.Object.FindObjectsOfType(typeof(GameObject)))
            {
                if (obj.name.StartsWith(gameObjectName))
                {
                    gameObject = obj;
                    break;
                }
            }

            if (gameObject == null)
            {
                Fabric.Internal.Editor.Utils.Warn("Couldn't find {0}'s GameObject", kit);
                return;
            }

            Component script = gameObject.GetComponent(gameObjectScriptName);

            switch (initializationType)
            {
            case Settings.InitializationType.Manual:
                if (script != null)
                {
                    Fabric.Internal.Editor.Utils.Log("Removing component {0} from {1} prefab.", gameObjectScriptName, gameObject);
                    Component.DestroyImmediate(script);
                }
                break;

            case Settings.InitializationType.Automatic:
                if (script == null)
                {
                    Fabric.Internal.Editor.Utils.Log("Adding component {0} to {1} prefab.", gameObjectScriptName, gameObject);
                    gameObject.AddComponent(Type.GetType(string.Format("Fabric.Internal.{0}", gameObjectScriptName)));
                }
                break;
            }
        }