/// <summary> /// Trans外观尺寸变化 /// </summary> protected override void OnRectTransformDimensionsChange() { if (gameObject.activeInHierarchy) { // prevent double dirtying... if (BrandoCanvasUpdateRegistry.IsRebuildingLayout()) { SetVerticesDirty(); } else { SetVerticesDirty(); SetLayoutDirty(); } } }
/// <summary> /// 文本纹理更新回调 /// </summary> public void FontTextureChanged() { // Only invoke if we are not destroyed. if (!this) { FontUpdateTracker.UntrackText(this); return; } if (m_DisableFontTextureRebuiltCallback) { return; } //将文本生成器标记为无效。 这将迫使全文生成在下次调用Populate时 cachedTextGenerator.Invalidate(); if (!IsActive()) { return; } // this is a bit hacky, but it is currently the // cleanest solution.... // if we detect the font texture has changed and are in a rebuild loop // we just regenerate the verts for the new UV's //这有点hacky,但它目前是 //最干净的解决方案.... //如果我们检测到字体纹理已更改并且处于重建循环中 //我们只是重新生成新UV的顶点 if (BrandoCanvasUpdateRegistry.IsRebuildingGraphics() || BrandoCanvasUpdateRegistry.IsRebuildingLayout()) { UpdateGeometry(); } else { SetAllDirty(); } }