diff --git a/Nautilus/Assets/PrefabTemplates/AtmosphereVolumeTemplate.cs b/Nautilus/Assets/PrefabTemplates/AtmosphereVolumeTemplate.cs index fbf3f1a9..8f1f1b0b 100644 --- a/Nautilus/Assets/PrefabTemplates/AtmosphereVolumeTemplate.cs +++ b/Nautilus/Assets/PrefabTemplates/AtmosphereVolumeTemplate.cs @@ -66,6 +66,7 @@ public AtmosphereVolumeTemplate(PrefabInfo info, VolumeShape shape, string overr public override IEnumerator GetPrefabAsync(TaskResult gameObject) { var prefab = new GameObject(info.ClassID); + prefab.SetActive(false); prefab.layer = AtmosphereVolumesLayer; Collider collider = Shape switch diff --git a/Nautilus/Assets/PrefabTemplates/CloneTemplate.cs b/Nautilus/Assets/PrefabTemplates/CloneTemplate.cs index 882cce8d..68ee6da8 100644 --- a/Nautilus/Assets/PrefabTemplates/CloneTemplate.cs +++ b/Nautilus/Assets/PrefabTemplates/CloneTemplate.cs @@ -79,6 +79,7 @@ public override IEnumerator GetPrefabAsync(TaskResult gameObject) GameObject obj = gameObject.Get(); if (obj) { + obj.SetActive(false); ApplySkin(obj); ModifyPrefab?.Invoke(obj); if(ModifyPrefabAsync is { }) @@ -89,12 +90,13 @@ public override IEnumerator GetPrefabAsync(TaskResult gameObject) if (_spawnType == SpawnType.TechType) { - yield return CraftData.InstantiateFromPrefabAsync(_techTypeToClone, gameObject); - obj = gameObject.Get(); + var task = CraftData.GetPrefabForTechTypeAsync(_techTypeToClone); + yield return task; + obj = Utils.InstantiateDeactivated(task.GetResult()); } else if(_spawnType == SpawnType.Prefab) { - var task = _prefabToClone.InstantiateAsync(); + var task = _prefabToClone.LoadAssetAsync(); yield return task; if (task.Status != UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationStatus.Succeeded) @@ -103,7 +105,7 @@ public override IEnumerator GetPrefabAsync(TaskResult gameObject) yield break; } - obj = task.Result; + obj = Utils.InstantiateDeactivated(task.Result); } else if(_spawnType == SpawnType.ClassId) { @@ -116,7 +118,7 @@ public override IEnumerator GetPrefabAsync(TaskResult gameObject) yield break; } - obj = Object.Instantiate(prefab); + obj = Utils.InstantiateDeactivated(prefab); } ApplySkin(obj); diff --git a/Nautilus/Assets/PrefabTemplates/EggTemplate.cs b/Nautilus/Assets/PrefabTemplates/EggTemplate.cs index a70de40e..fbaa6369 100644 --- a/Nautilus/Assets/PrefabTemplates/EggTemplate.cs +++ b/Nautilus/Assets/PrefabTemplates/EggTemplate.cs @@ -213,6 +213,7 @@ public override IEnumerator GetPrefabAsync(TaskResult gameObject) var obj = gameObject.Get(); if (obj) { + obj.SetActive(false); yield return ProcessEgg(obj); yield break; } @@ -231,6 +232,7 @@ Please use one of the constructor overloads that take a game object or pass a ga """); yield break; } + obj.SetActive(false); yield return ProcessEgg(obj); gameObject.Set(obj); diff --git a/Nautilus/Assets/PrefabTemplates/EnergySourceTemplate.cs b/Nautilus/Assets/PrefabTemplates/EnergySourceTemplate.cs index 39068067..152d120f 100644 --- a/Nautilus/Assets/PrefabTemplates/EnergySourceTemplate.cs +++ b/Nautilus/Assets/PrefabTemplates/EnergySourceTemplate.cs @@ -55,6 +55,7 @@ public override IEnumerator GetPrefabAsync(TaskResult gameObject) var obj = gameObject.Get(); if (obj) { + obj.SetActive(false); ApplyModifications(obj); yield break; } @@ -68,7 +69,7 @@ private IEnumerator CreateEnergySource(IOut gameObject) var task = CraftData.GetPrefabForTechTypeAsync(tt, false); yield return task; - var obj = GameObject.Instantiate(task.GetResult()); + var obj = UWE.Utils.InstantiateDeactivated(task.GetResult()); yield return ApplyModifications(obj); diff --git a/Nautilus/Assets/PrefabTemplates/FabricatorTemplate.cs b/Nautilus/Assets/PrefabTemplates/FabricatorTemplate.cs index 9600d99b..153620d0 100644 --- a/Nautilus/Assets/PrefabTemplates/FabricatorTemplate.cs +++ b/Nautilus/Assets/PrefabTemplates/FabricatorTemplate.cs @@ -140,7 +140,7 @@ private IEnumerator CreateFabricator(IOut gameObject) InternalLogger.Error($"Failed to get prefab for {FabricatorModel}!!!!!!!! PLEASE REPORT THIS BUG TO THE NAUTILUS TEAM!"); } - var obj = GameObject.Instantiate(prefab); + var obj = Utils.InstantiateDeactivated(prefab); yield return ApplyCrafterPrefab(obj); gameObject.Set(obj); }