diff --git a/QSB/Tools/PlayerToolsManager.cs b/QSB/Tools/PlayerToolsManager.cs index 0dbce3ef..186f8eda 100644 --- a/QSB/Tools/PlayerToolsManager.cs +++ b/QSB/Tools/PlayerToolsManager.cs @@ -1,5 +1,6 @@ using OWML.ModHelper.Events; using System.Linq; +using QSB.Utility; using UnityEngine; namespace QSB.Tools @@ -98,9 +99,7 @@ namespace QSB.Tools { var original = GameObject.Find("NomaiTranslatorProp"); - original.SetActive(false); - var translatorRoot = Object.Instantiate(original); - original.SetActive(true); + var translatorRoot = original.InstantiateInactive(); var group = translatorRoot.transform.Find("TranslatorGroup"); var model = group.Find("Props_HEA_Translator"); diff --git a/QSB/TransformSync/PlayerProbeSync.cs b/QSB/TransformSync/PlayerProbeSync.cs index 024e5cc8..122bf6a1 100644 --- a/QSB/TransformSync/PlayerProbeSync.cs +++ b/QSB/TransformSync/PlayerProbeSync.cs @@ -1,4 +1,5 @@ using QSB.Tools; +using QSB.Utility; using UnityEngine; namespace QSB.TransformSync @@ -35,9 +36,7 @@ namespace QSB.TransformSync { var probe = GetProbe(); - probe.gameObject.SetActive(false); - var body = Instantiate(probe); - probe.gameObject.SetActive(true); + var body = probe.InstantiateInactive(); Destroy(body.GetComponentInChildren()); diff --git a/QSB/Utility/GOExtensions.cs b/QSB/Utility/GOExtensions.cs index 3be273e2..19016769 100644 --- a/QSB/Utility/GOExtensions.cs +++ b/QSB/Utility/GOExtensions.cs @@ -16,5 +16,19 @@ namespace QSB.Utility renderer.enabled = isVisible; } } + + public static GameObject InstantiateInactive(this GameObject original) + { + original.SetActive(false); + var copy = Object.Instantiate(original); + original.SetActive(true); + return copy; + } + + public static Transform InstantiateInactive(this Transform original) + { + return original.gameObject.InstantiateInactive().transform; + } + } }