public override void OnRebuildRequested() { // After a Font asset gets re-imported the managed side gets deleted and recreated, // that means the delegates are not persisted. // so we need to properly enforce a consistent state here. FontUpdateTrackerUI.UntrackText(this); FontUpdateTrackerUI.TrackText(this); // Also the textgenerator is no longer valid. cachedTextGenerator.Invalidate(); base.OnRebuildRequested(); }
// The Text inspector editor can change the font, and we need a way to track changes so that we get the appropriate rebuild callbacks // We can intercept changes in OnValidate, and keep track of the previous font reference protected override void OnValidate() { if (!IsActive()) { base.OnValidate(); return; } if (m_FontData.font != m_LastTrackedFont) { Font newFont = m_FontData.font; m_FontData.font = m_LastTrackedFont; FontUpdateTrackerUI.UntrackText(this); m_FontData.font = newFont; FontUpdateTrackerUI.TrackText(this); m_LastTrackedFont = newFont; } base.OnValidate(); }
protected override void OnDisable() { FontUpdateTrackerUI.UntrackText(this); base.OnDisable(); }
protected override void OnEnable() { base.OnEnable(); cachedTextGenerator.Invalidate(); FontUpdateTrackerUI.TrackText(this); }