diff --git a/Assets/_Content/Scenes/Testing/YK-Subtitles/SubtitlesTest.unity b/Assets/_Content/Scenes/Testing/YK-Subtitles/SubtitlesTest.unity index dbe2ca21..aec2dcaa 100644 --- a/Assets/_Content/Scenes/Testing/YK-Subtitles/SubtitlesTest.unity +++ b/Assets/_Content/Scenes/Testing/YK-Subtitles/SubtitlesTest.unity @@ -334,9 +334,9 @@ MonoBehaviour: - {fileID: 11400000, guid: d2b009825e5fdef4197bfa70e59bf349, type: 2} - {fileID: 11400000, guid: d612f7901720205498d63ae1fd6b556d, type: 2} - {fileID: 11400000, guid: d5dd43cfa59c82841a5110cf1c54cfd6, type: 2} - _shiftInterval: 3 + _shiftInterval: 0.5 _minLetterDelay: 0.05 - _maxLetterDelay: 0.25 + _maxLetterDelay: 0.45 _fontSize: 86 _textColor: {r: 1, g: 1, b: 1, a: 1} --- !u!114 &744399719 diff --git a/Assets/_Content/Scripts/Features/ShifitingSubtitles/PerLetterFontShifter.cs b/Assets/_Content/Scripts/Features/ShifitingSubtitles/PerLetterFontShifter.cs index ec804baa..58e7bd50 100644 --- a/Assets/_Content/Scripts/Features/ShifitingSubtitles/PerLetterFontShifter.cs +++ b/Assets/_Content/Scripts/Features/ShifitingSubtitles/PerLetterFontShifter.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; +using UnityEngine.UI; namespace Unheimlich.UI { @@ -108,25 +109,25 @@ namespace Unheimlich.UI private void ArrangeLetters() { - float totalWidth = 0f; - List letterWidths = new List(); + HorizontalLayoutGroup layout = gameObject.GetComponent(); + if (layout == null) + layout = gameObject.AddComponent(); + + layout.childAlignment = TextAnchor.MiddleCenter; + layout.childForceExpandWidth = false; + layout.childForceExpandHeight = false; + layout.childControlWidth = true; + layout.childControlHeight = true; + layout.spacing = 0f; foreach (TextMeshProUGUI letter in _letterObjects) { - letter.ForceMeshUpdate(); - float width = letter.preferredWidth; - letterWidths.Add(width); - totalWidth += width; - } + ContentSizeFitter fitter = letter.gameObject.GetComponent(); + if (fitter == null) + fitter = letter.gameObject.AddComponent(); - float currentX = -totalWidth / 2f; - - for (int i = 0; i < _letterObjects.Count; i++) - { - RectTransform rt = _letterObjects[i].GetComponent(); - rt.anchoredPosition = new Vector2(currentX + letterWidths[i] / 2f, 0f); - rt.sizeDelta = new Vector2(letterWidths[i] + 2f, _fontSize * 1.5f); - currentX += letterWidths[i]; + fitter.horizontalFit = ContentSizeFitter.FitMode.PreferredSize; + fitter.verticalFit = ContentSizeFitter.FitMode.PreferredSize; } }