static GameObject GetSessionHooksRoot(bool createIfNecessary = true) { if (s_SessionHooksRoot == null) { s_SessionHooksRoot = GameObject.Find(k_HostGoName); if (s_SessionHooksRoot == null) { if (!createIfNecessary) { return(null); } s_SessionHooksRoot = UnityHelpers.CreateRecorderGameObject(k_HostGoName); } } return(s_SessionHooksRoot); }
public static void Set(string id, Object obj) { var rbs = FindRecorderBindings(); if (obj == null) { // Remove foreach (var rb in rbs) { RemoveBinding(id, rb); } } else { var scene = GetObjectScene(obj); var rb = rbs.FirstOrDefault(r => r.gameObject.scene == scene); if (rb == null) { // Add var gameObject = UnityHelpers.CreateRecorderGameObject(k_HostGoName); rb = gameObject.AddComponent <RecorderBindings>(); SceneManager.MoveGameObjectToScene(rb.gameObject, scene); } // Replace rb.SetBindingValue(id, obj); foreach (var r in rbs) { if (r == rb) { continue; } RemoveBinding(id, r); } } }