Jump to content
Unity Insider Forum

Unity UI - derber Anzeigefehler!


Recommended Posts

Ich weiß nicht wie ich dieses widersinnige Phänomen anders bezeichnen kann.

Ich benutze nicht die Scripting UI, das vorweg. Ich baue sie zusammen, instanziiere sie und setze im Skript alles wie folgt:

if (!shownYaku)
                        {
                            shownYaku = true;
                            GameObject yaku = Instantiate(Resources.Load<GameObject>("Prefabs/FixedYaku"));
                            yaku.name = main.newYaku[0].Name;
                            GameObject.Find(main.newYaku[0].Name + "/Title/Shadow").GetComponent<Text>().text = main.newYaku[0].JName;
                            GameObject.Find(main.newYaku[0].Name + "/Title/Text").GetComponent<Text>().text = main.newYaku[0].JName;
                            GameObject.Find(main.newYaku[0].Name + "/Subtitle/Shadow").GetComponent<Text>().text = main.newYaku[0].Name;
                            GameObject.Find(main.newYaku[0].Name + "/Subtitle/Text").GetComponent<Text>().text = main.newYaku[0].Name;
                            List<Card> temp = new List<Card>();
                            if (main.newYaku[0].Mask[1] == 1)
                                temp.AddRange(((Player)main.Board.players[0]).CollectedCards.FindAll(x => main.newYaku[0].Namen.Contains(x.Name)));
                            if (main.newYaku[0].Mask[0] == 1)
                                temp.AddRange((((Player)main.Board.players[0]).CollectedCards.FindAll(x => x.Typ == main.newYaku[0].TypPref)));
                            Transform parent = GameObject.Find(main.newYaku[0].Name + "/Cards").transform;
                            for (int i = 0; i < main.newYaku[0].minSize; i++)
                            {
                                GameObject card = new GameObject(i.ToString());
                                card.transform.parent = parent;
                                RectTransform rect = card.AddComponent<RectTransform>();
                                rect.localPosition = new Vector3((main.newYaku[0].minSize / 2f) * -42 + 42 * i + 21, 0);
                                rect.sizeDelta = new Vector2(40, 64);
                                GameObject shadow = new GameObject("Shadow");
                                shadow.transform.parent = card.transform;
                                shadow.AddComponent<Image>().color = new Color(0, 0, 0);
                                rect = shadow.GetComponent<RectTransform>();
                                rect.localPosition = new Vector3(3, -3);
                                rect.sizeDelta = new Vector2(40, 64);
                                GameObject Image = new GameObject("Image");
                                Image.transform.parent = card.transform;
                                Image img = Image.AddComponent<Image>();
                                Texture2D tex = Resources.Load<Texture2D>("Motive/" + temp[i].Name);
                                img.sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(.5f, .5f));
                                rect = img.GetComponent<RectTransform>();
                                rect.localPosition = new Vector3(0, 0);
                                rect.sizeDelta = new Vector2(40, 64);

                            }
                        }

Und jetzt der totale Schock: Der Text unter Titel wird nicht angezeigt, der unter Subtitle aber schon. selbst wenn ich auf Pause drücke und alles genauso mache wie beim Subtitle wird das Element einfach nicht angezeigt. Ich weiß nicht mehr weiter und bin völlig überfragt.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 months later...

Der einfachste Grund, wieso ein Text nicht angezeigt wird ist, dass die Textbox für den aktuellen Text zu klein ist. Ziehe diesen mal zur Laufzeit größer und schaue, ob dein Text dann sichtbar ist. :) Wenn ja, musst Du die Laufzeitskalierung anpassen oder in der Text Component zum Testen mal Best Fit anhaken. Ein Prefab kann beim Instanzieren / Hinzufügen zu einem Canvas dennoch manchmal seine Eigenheiten haben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...