him.2013 Geschrieben 11. April 2019 Melden Share Geschrieben 11. April 2019 Hi, ich habe eine umfangreiche App programmiert und bekomme ab und zu (im Handy oder in der Windows-Version) eine fehlerhafte Darstellung einiger Text-Elemente (siehe Screenshoot). Das Problem: Der Fehler kommt nur alle 6 Monate einmal in Unity-Editor vor. D.h. ich habe keine Möglichkeit, mit dem Unity-Editor raus zu bekommen woran es liegt. Der Editor hatte das letzte Mal folgenden Fehler ausgegeben: InvalidOperationException: HashSet have been modified while it was iterated over System.Collections.Generic.HashSet`1+Enumerator[UnityEngine.UI.Text].CheckState () System.Collections.Generic.HashSet`1+Enumerator[UnityEngine.UI.Text].MoveNext () UnityEngine.UI.FontUpdateTracker.RebuildForFont (UnityEngine.Font f) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/FontUpdateTracker.cs:40) UnityEngine.Font.InvokeTextureRebuilt_Internal (UnityEngine.Font font) (at C:/buildslave/unity/build/artifacts/generated/bindings_old/common/TextRendering/TextRenderingBindings.gen.cs:598) UnityEngine.UI.Text:get_preferredHeight() MyListView:TextOptimalAnpassen(GameObject, String, String, Int32) (at Assets/Scripts/Lists/MyListView.cs:61) ListCreator:EinDiagnoseElementErtellen(String[], Int32) (at Assets/Scripts/Lists/ListCreator.cs:286) ListCreator:ZeigeEineGruppeVonDiagnosen(Int32, Int32, Int32, Boolean) (at Assets/Scripts/Lists/ListCreator.cs:249) <GefundeDiagnosenEinfuegen>c__Iterator1:MoveNext() (at Assets/Scripts/Lists/ListCreator.cs:228) UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) ListCreator:GetGesuchteDiagnosen() (at Assets/Scripts/Lists/ListCreator.cs:174) UnityEngine.EventSystems.EventSystem:Update() Der SourceCode zu dieser Stelle: public void TextOptimalAnpassen(GameObject gameObj, string txtText, string textName, int childNr) { Transform txtObj = gameObj.transform.GetChild(childNr); Text txt = txtObj.GetComponent<Text>(); txt.text = txtText.TrimEnd(); LayoutElement myLayoutElements = gameObj.GetComponent<LayoutElement>(); myLayoutElements.preferredHeight = GetPreferredHeight(txt) * txt.transform.localScale.x * 2.4f - 10; if (myLayoutElements.preferredHeight > 100) myLayoutElements.preferredHeight = GetPreferredHeight(txt) * PlayerPrefs.GetFloat("tabletFactor2"); //myLayoutElements.preferredHeight -= 55; else if (myLayoutElements.preferredHeight > 80) myLayoutElements.preferredHeight -= 15; txt.transform.name = textName; } wer kann hier weiter helfen? vielen Dank Hîm Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
him.2013 Geschrieben 15. April 2019 Autor Melden Share Geschrieben 15. April 2019 Falls jemand interessiert. Den Fehler konnte ich nicht wirklich beheben. Aber als ich nach dem auftauchen des Problems den Textinhalt verändert habe (ich habe ein leer Zeichen hinzugefügt), dann war das veränderte Textelement nicht mehr fehlerhaft. Grüße Him Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 15. April 2019 Melden Share Geschrieben 15. April 2019 Echt komisch. Aber vielleicht liegt es an deinem TrimEnd(). Keine Ahnung was da passiert. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.