/// <summary> /// Create the alignmentManager if needed. /// </summary> /// <remarks> /// The AlignmentManager, though mostly independent, does have a dependency on the WorldLockingManager. /// The WorldLockingManager can't be created until Start/OnEnable (whichever comes first). So even /// though the AlignmentManager isn't a Unity derived type, it is still limited on how early it can /// be created. /// </remarks> private void CheckInternalWiring() { if (alignmentManager == null) { alignmentManager = new AlignmentManager(WorldLockingManager.GetInstance()); alignmentManager.SaveFileName = SaveFileName; OnAlignManagerCreated?.Invoke(this, alignmentManager); } if (subTree == null) { subTree = transform; } }
/// <summary> /// Create the alignmentManager if needed. /// </summary> /// <remarks> /// The AlignmentManager, though mostly independent, does have a dependency on the WorldLockingManager. /// The WorldLockingManager can't be created until Start/OnEnable (whichever comes first). So even /// though the AlignmentManager isn't a Unity derived type, it is still limited on how early it can /// be created. /// </remarks> private void CheckInternalWiring() { if (alignmentManager == null) { alignmentManager = new AlignmentManager(WorldLockingManager.GetInstance()); alignmentManager.SaveFileName = SaveFileName; OnAlignManagerCreated?.Invoke(this, alignmentManager); } if (subTree == null) { subTree = transform; } if (orienter == null) { orienter = GetComponentInChildren <Orienter>(); Debug.LogWarning($"No Orienter found on {name}, implicit Orienter found in subtree is {(orienter == null ? "null" : orienter.name)}"); } if (Orienter != null) { Orienter.AlignmentManager = alignmentManager; } }