Jump to content
Unity Insider Forum

Leaderboard


Popular Content

Showing content with the highest reputation on 05/28/2019 in all areas

  1. 2 points
    Ich muss da Jomnitech zustimmen du machst dir das leben schwerer als es sein muss. Stell dir vor du willst die Scallierung der Buttons ändern das dauert dann wieder unnötig lange. Ich würde tatsächlich mit den Unity Buttons mit verändertem Sprite arbeiten. Aber wenn du das tatsächlich so machen willst schau dir mal die Erweiterung: TextMeshPro im Unity Store an. (ist for free) Damit haste mehr UI-Optionen als in Vanilla Unity vielleicht geht es mit dem Tool besser. LG Peanut :3
  2. 1 point
    Hallo und danke für eure Unterstützung! Ich habe das ursprüngliche Problem übrigens gelöst, indem ich im Canvas die Reference Resolution auf 1920x1080 gesetzt habe und den UI Scale Mode auf "Scale With Screen Size" festgelegt habe. Außerdem hab ich den Screen Match Mode auf Expand gesetzt (weiß nicht, ob das positiven Einfluss hatte). Selbstverständlich ist mir eure Meinung wichtig, daher habe ich darüber nochmal nachgedacht. Prinzipiell gebe ich euch Recht, dass die Art und Weise (selbst wenn's von der Performance her Toaster-Kompatibel ist ), nicht so praktisch ist. Allerdings waren meine Beispiele nur die halbe Wahrheit. Es soll am Ende eher in diese Richtung hier gehen: Unterschiedliche Schriftgrößen und 3D. Die normale Button-Beschriftung in Unity gibt das möglicherweise nicht her. Heißt auch, dass die Buttons dann nicht den gleichen Sprite nutzen könnten. (Hintergrund ist gleich, aber die Schrift ist anders.) TextMeshPro sieht allerdings interessant aus! Hab mir mal paar Beispiele angeschaut, und auf einem Blog hab ich das hier gesehen, was wirklich beeindruckend ist: Auf die Schnelle habe ich jetzt das hier hinbekommen: Ein UI-Image eingefügt, als Source Image diesen grünen Kasten verwendet und innerhalb des UI-Images ein UI-TextMeshPro-Element eingefügt und darin die Schrift reingeschrieben und Farbe + Größe mit tags definiert. Die Option TextMeshPro war bei mir übrigens schon standardmäßig drin. Wenn es keine 3D-Schrift ist, dann ist das auch kein so großer Untergang. Hätte sonst alles mit Photoshop gemacht, aber so werde ich mich nur auf die Hintergründe konzentrieren und die Schrift in Unity machen. Viele Grüße
  3. 1 point
    Hallo Forum, hier der ThreadStarter, So viele Wochenenden - und dann brachte eine entscheidende Zeile Code innerhalb einer halben Stunde das Ergebnis. Wer es brauchen kann, hoffentlich hat der Mann mit dem Hut nicht so viel zu meckern: using UnityEngine; /* Führt durch die Überlagerung von RotationDeltaSoll beziehungsweise über den smoothen Wert RotationDeltaLast ein Transform einem Target nach. Der Wert von RotationDeltaSoll wird anhand des Hilfsobjektes Eyes berechnet, welches korrekt ausgerichtet und dem Transform untergeordnet ist. Dadurch ist es nicht notwendig, daß das Transform bezüglich Vorne/Oben korrekt ausgerichtet ist. Benutzt wird die Unity-Funktion Quaternion.LookRotatin. */ public class LookAt1 : MonoBehaviour { public Transform NeckJoint; public Transform Eyes; public Transform Target; public bool Clamped; public float MaxY_Deg; public float MaxX_Deg; public float Acceleration; private Quaternion rotationDeltaLast; private void LateUpdate() { Quaternion RotationDeltasoll = MyLookAtDelta(Eyes, Target, Vector3.up); Vector3 v3 = RotationDeltasoll.eulerAngles; v3.y = MyClamp(v3.y, MaxY_Deg); v3.x = MyClamp(v3.x, MaxX_Deg); RotationDeltasoll.eulerAngles = v3; rotationDeltaLast = Quaternion.LerpUnclamped(rotationDeltaLast, RotationDeltasoll, Acceleration); NeckJoint.rotation = rotationDeltaLast * NeckJoint.rotation; } private float MyClamp(float f, float max) { if (f > 180) f -= 360; f = Mathf.Clamp(f, -max, max); if (Mathf.Abs(f) == max) Clamped = true; else Clamped = false; if (f < 0) f += 360; return f; } private Quaternion MyLookAtDelta(Transform correctTransform, Transform target) { return MyLookAtDelta(correctTransform, target.position - correctTransform.position, Vector3.up); } private Quaternion MyLookAtDelta(Transform correctTransform, Transform target, Vector3 up) { return MyLookAtDelta(correctTransform, target.position - correctTransform.position, up); } private Quaternion MyLookAtDelta(Transform correctTransform, Vector3 lookDirection) { return MyLookAtDelta(correctTransform, lookDirection, Vector3.up); } private Quaternion MyLookAtDelta(Transform correctTransform, Vector3 lookDirection, Vector3 up) { return Quaternion.LookRotation(lookDirection, up) * Quaternion.Inverse(correctTransform.rotation); } private Quaternion QDifference(Quaternion a, Quaternion b) { return b * Quaternion.Inverse(a); } } Ich benutze das Script in einer etwas anderen Form, für euch habe ich den Ballast raus genommen und nochmal überprüft. Ich denke, man könnte ohne das Hilfsobjekt auskommen, aber ich will endlich weiterkommen, und da es funktioniert ... Gruß von Lutz.
  4. 1 point
    Mal ohne gross auf das spezifische Problem ein zu gehen, was für mich danach aussieht als ob dein Background-Bild falsch skalliert, weil der Button immer gleich gross aussieht(oder Kameraeinstellung usw.), würde ich eher von dieser Technik abraten. Es macht es um einiges aufwändiger dinge zu platzieren, wie du ja selbst merkst, und spätere überarbeitung ist auch in meinen Augen mühseeliger. Das ganze jetzt rein performance Technisch machen zu wollen, denke ich ist hier etwas übertrieben. Wenn das nicht gerade auf einem Toaster laufen soll, sollte das kein Problem sein. Ausserdem wenn du, wie du sagst, eh alles die gleichen Buttons hast, teilen sich diese ja auch das ensprechende Sprite, was dann alles in einem rutsch ausgeführt wird. Korrigiert mich falls ich falsch liege, aber ich denke du baust hier Probleme wo keine sein müssten und es ist für mich kein gutes Fundament.

Announcements

Hy, wir programmieren für dich Apps(Android & iOS):

Weiterleitung zum Entwickler "daubit"



×
×
  • Create New...