Zusammenfassung der bei der Einheitsentwicklung aufgetretenen Probleme und Lösungen

Bei der Entwicklung von Spielen werden wir immer auf einige Probleme stoßen, aber wir haben sie gelöst, ohne die Lösungen aufzuzeichnen. Das Zeitintervall ist lang. Wenn wir später wieder auf sie stoßen, müssen wir durch eine andere Grube gehen ... also Ich werde sie zuerst hier aufzeichnen und später darauf stoßen. Die Lösung können Sie hier direkt sehen:

Dieser Artikel wird von Zeit zu Zeit aktualisiert. Wenn Sie auf einen Fallstrick stoßen, aktualisieren Sie ihn einmal.

ugui verwandt:

1. Nachdem der UUI-Ankerpunktdrehpunkt und der Ankerkastenanker dynamisch geändert wurden, führt das Problem der dynamischen Einstellung von localPosition dazu, dass sich die tatsächlichen Koordinaten von den eingestellten Koordinaten unterscheiden:

Verwenden Sie einfach „ankeredPosition“ von „RectTransform“, um die Koordinaten festzulegen, und „sizeDelta“, um die Größe festzulegen.

RectTransform rect = img.gameObject.GetComponent<RectTransform>();
rect.anchorMin = new Vector2(0, 0);
rect.anchorMax = new Vector2(0, 0);
rect.pivot = new Vector2(0, 0.5f);
rect.anchoredPosition = new Vector3(0, 64.5f);
rect.sizeDelta = new Vector2(80, 80);
2. Für den von der UUI-Komponente Toggle Group gesteuerten Toggle werden zwei Ison=true ausgewählt

Ich habe gerade dieses Problem entdeckt. Der Code kann den Ison-Status des SetActive des Toggles auf „false“ setzen. Wenn es jedoch unter den mehreren Toggles, die von der Toggle-Gruppe gesteuert werden, einen Toggle gibt, dessen SetActive des Toggles sich im False-Zustand befindet, den Toggle Die Gruppe kann diesen Schalter nicht steuern.
Wenn Sie for zum Durchlaufen von Toggles verwenden und nach Toggles suchen, bei denen Ison wahr ist, dann finden Sie möglicherweise mehrere Toggles, bei denen Ison wahr ist ... Sie sollten beim Durchlaufen eine Filterung
hinzufügen Toggle.gameObject.activeSelf == false, da es sonst zu Logikfehlern kommt.

Bezogen auf die Editor-Entwicklung

1. Muss beim Löschen von GameObject verwendet werden
GameObject.DestroyImmediate(gameobject, true)

Die Methode kann zum Löschen von Komponenten verwendet werden. Parameter 1: Gameobject-Komponentenobjekt, Parameter 2: ob die Ressourcenzerstörung zugelassen werden soll.
Nicht verwendbar: GameObject.Destroy(gameobject)Dies kann keine Ressourcen im Editormodus löschen

2. Instanziieren Sie das Objekt: Instanziieren

Das instanziierte Objekt im Editormodus kann nicht gespeichert werden und muss hinzugefügt werden: EditorUtility.SetDirty(obj)Methode

GameObject obj = GameObject.Instantiate(levelPrefab, levelNode.transform);
EditorUtility.SetDirty(obj);

Bezogen auf Unity-Komponenten

Licht :

Legen Sie den Lichtschattentyp fest: (ps: Es gibt keinen Parameter für this.gameObject.GetComponent().shadowType==)

this.gameObject.GetComponent<Light>().shadows = LightShadows.Soft;

Verschiedenes:

1. Einige Mobiltelefone können oben schwarze Ränder haben.

Das Telefon ist möglicherweise ein Vollbild-Telefon und muss zu AndroidManifest.xml hinzugefügt werden:

<meta-data android:name="android.max_aspect" android:value="2.2"/>

Referenz: Wie passt sich Unity Android an den Vollbildmodus an?
Verwenden Sie die Registerkarte „Auflösung und Präsentation“ im Fenster „Spielereinstellungen“, um die Bildschirmauflösung des Spiels so einzustellen, dass sie sich an verschiedene Anzeigegeräte anpasst. Stellen Sie den Spielfenstermodus ein und passen Sie die Fenstergröße und -position nach Bedarf an. Allgemeine Einstellparameter:
Fügen Sie hier eine Bildbeschreibung ein

Ich denke du magst

Origin blog.csdn.net/QO_GQ/article/details/130063610
Empfohlen
Rangfolge