Jump to content
Unity Insider Forum
  • Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

coco07

Members
  • Content count

    20
  • Joined

  • Last visited

Community Reputation

0 Neutral

About coco07

  • Rank
    Member

Recent Profile Visitors

291 profile views
  1. Unity2D Performance?

    Mark@ Ich teste das Game auf den beiden mobilen Geräten und da komme ich nicht über die 60fps hinweg. Allerdings wird es auf Android irgendwo eine Beschränkung geben. Mehr FPS bringen dem User wohl auch nicht mehr, außer, dass er sein Handy öfter laden darf Zer0Cool@ Ich hatte schonmal alles genau so eingestellt und da machte es keinen Unterschied, deswegen hatte ich VSync ohne Hintergedanken wieder aktiviert, um keinen Tearing-Effekt zu bekommen. Diese Einstellungen waren mir deshalb auch bekannt Allerdings frage ich mich, warum Unity hier nicht selbst die Dinge mit der Performance regelt, wenn es um mobile Apps geht. Mehr Sinn würde es machen, dass man die Quali hochschrauben kann, wenn man unzufrieden ist, und nicht anders herum :/ Danke euch zwei, damit muss ich erstmal leben. Wenn ich noch weitere relevante Performanceupgrades erziele, gebe ich euch Bescheid Dankeschön
  2. Unity2D Performance?

    Zer0Cool@ Mit dem Shader hat es jetzt geklappt. Habe es beim ersten Mal wohl einfach verkehrt gemacht. Die Texturen sind jetzt sichtbar und die Performance gefühlt gestiegen Dankeschön nochmal Mark@ Habe VSync mal testweise deaktiviert. Das Game läuft zwar flüssiger als vorher, allerdings ist Gfx.WaitForPresent mit ca 5-10 ms noch immer im Profiler zu sehen :/ Dankeschön Ich bekomme jetzt dank diesen Änderungen aber fast konstante 60FPS auf dem Tablet und S3 Mini, was ausreichend sein sollte. Bin für weitere "versteckte" Optimierungen trotzdem weiterhin dankbar
  3. Unity2D Performance?

    Vielen Dank für deine Hilfe Werde ich testen, sobald ich Zuhause bin und gebe dann Rückmeldung Edit: So, habe diesen Shader mal eingefügt(zum ersten Mal) und das Ergebnis ist weniger erfreulich :/ Ich habe einen Shader unter Create->Shader->Standard Surface Shader erstellt und deinen Code in das leere Dokument ausgeführt. Dann ein neues Material erstellt und deinen Shader zugewiesen. Ist es richtig, dass ich für jede Grafik, welche diese Shader nutzen soll, ein eigenes Material erstellen muss? Um das mal zu demonstrieren, wie das aussehen soll: Sobald diese im Vordergrund stehenden Grafiken im Bild sind, ruckelt es auf dem S3 Mini und Amazon Tablet so stark, dass die Figur beim springen 3 mal so lang in der Luft bleibt. Nehme ich diese raus, ist wieder alles blendend... (Wie gesagt, auf einem stärkeren Smartphone merkt man NICHTS).. Mit dem Shader sieht es so aus: Grüße Coco07 Edit2: Ich habe jetzt einfach mal ALLES in der Szene deaktiviert bis auf die Kamera. Gfx.WaitForPresent bleibt weiterhin bei über 10ms pro frame, obwohl nichts auf den Bildschirm gezeichnet wird. Das macht doch gar keinen Sinn :/
  4. Unity2D Performance?

    Hallo Mr 3d, erst einmal vielen Dank für die Antwort Der Profiler sagt dazu folgendes: Obwohl hier 60FPS angezeigt werden, ruckelt das Spie, sobald ich in die Nähe der beiden Grafiken komme stark :/ Zer0Cool@ Danke für deine Antwort, hat sich gerade etwas überschnitten Es ist nur dieses eine Skript für den Player in der Szene aktiv. Dort wird in der Update Methode nur die Input-Behandlung abgearbeitet. Wenn ich dieses Skript auch noch deaktiviere, kann ich den Player nicht mehr steuern. Allerdings ruckelt es ja nicht, wenn ich diese beiden anderen übereinander liegenden Grafiken entferne. Der Profiler sagt ja auch, dass die CPU auf die GPU wartet. Kann mir allerdings nicht erklären, warum es so lange dauert 3 übereinander liegende Grafiken zu zeichnen :S
  5. Unity2D Performance?

    Hallo Community, ich habe bei meinem neuen Spiel Performance-Probleme, welche ich einfach nicht lösen kann :/ Es handelt sich dabei um einen einfachen 2D Sidescroller. In der Szene vorhanden sind von hinten nach vorne ein Fullscreen Background, 2 breitere Hintergründe(übereinander mit etwas Transparenz), welche Gebäude simulieren und eine Figur im Vordergrund. Die 3 Layer, welchen einen realistischen Hintergrund darstellen sollen, sind einfach Grafiken, welche größtenteils aus nur einer Farbe bestehen. Die Spielfigur lässt sich durch einen Joystick steuern. Wenn ich nun die beiden Layer im Hintergrund entferne, läuft die Spielfigur mit Hilfe des Rigidbodys und der Interpolation sehr flüssig bei 200 FPS hin und her. Sobald die beiden Layer aktiv sind, bricht die Framerate auf rund 30 FPS runter. Als Material wird der "Sprite-Default"-Shader verwendet. Zur Komprimierung der Grafiken wird ein TextureAtlas benutzt. Durch stundenlanges Googlen habe ich dann irgendwann herausgefunden, dass das Phänomen wohl als "Overdraw" bezeichnet wird und dann zu Stande kommt, wenn Grafiken, wie der Name schon sagt, übereinander gezeichnet werden. Ist es normal, dass die Framerate von rund 200 FPS auf 30 runter bricht, wenn 3 Grafiken(ca 356x200 Pixel pro Sprite) übereinander gezeichnet werden? Dazu muss ich sagen, dass ich auf einem S3 Mini und einem Amazon Kindle HD 3.gen teste, weil ich das Game auch gerne auf Geräten mit nicht so viel Leistung laufen lassen möchte. Titel à la Candy Crush oder Temple Run(entwickelt mit Unity) laufen allerdings absolut flüssig auf Diesen. Auf nem LG G2 läuft mein Game wunderbar mit keinerlei Einbußen... Kann sich jemand einen Reim darauf machen? Grüße Coco07
  6. Hallo Community, Text schreibt man ja für gewöhnlich mit Hilfe einer Fontdatei aka .ttf. Problem dabei ist, dass die Font, welche ich ursprünglich nutzen wollte, transparent ist und Unity diese natürlich nicht mit Farbe füllen kann. Jetzt habe ich mir eine eigene Font(png) in Photoshop erstellt und würde diese nun gerne für Gui-Text einsetzen. Wie mache ich das am besten? Anders gefragt, wie ist der generelle Ablauf einer solchen Font-Erstellung? Macht man generell eine Vector Grafik für Fonts fertig oder lässt sich das auch via PNG und Hard-Coding "einfach" lösen? Wie handhabt ihr das? Mit freundlichen Grüßen Coco07!
  7. Halo Mr 3d, vielen Dank für deine Hilfe. Deine Lösung ist zwar nicht die Gesuchte, aber trotzdem der Denkanstoß für die Endgültige gewesen. Hier ist die Endgültige: Unity ist für 2D Animation nun wirklich alles andere als optimiert. LibGDX bietet hier wesentlich einfachere Eventsysteme an. Unity gefällt mir dahingehend überhaupt nicht.
  8. Hallo TobLine, würde nicht funktionieren. Ich brauche eine einmalig abgespielte Animation beim loslassen des Buttons. Deswegen der kleine Hinweis "Wie bei Candy Crush von King". Er soll praktisch diesen "bubble Effekt" nachahmen. Danke für deine Antwort
  9. Hallo Community, ich komme derzeit beim Animieren eines Buttons im Spiel nicht weiter. Animation in LibGDX waren ein einfaches Thema. In Unity scheint mir das sehr komplex zu sein. Wenn ich in der von Unity bereitgestellten Button Komponente "Transition" auf Animation stelle und dann in das Animations-Fenster wechsle, finde ich dort nur "Normal", "Highlighted", "Pressed" und "Disabled" als mögliche States, nicht aber "Released". Kann ich diesen State nur per Code animieren? Der Button soll beim Drücken kleiner skaliert werden und beim loslassen eine kleine Animation zeigen. Ähnlich wie bei Candy Crush von King. Gibt es eine andere Möglichkeit als diesen per Code zu animieren? Mit freundlichen Grüßen Coco07
  10. Hallo Community, ich schreibe gerade einen kleinen 2D-Shooter. Das Bewegen mit Hilfe der RigidBody2D Komponente und dem dazugehörigen NetworkTransform funktioniert inklusive der Animation-Synchronisierung auf allen Clients. Beim Schießen komme ich derzeit nicht weiter. Wenn ich die Kugel auf dem Server spawne, habe ich auf meinem eigenen Client eine Verzögerung. Die Kugel kommt also nicht mehr direkt aus der Waffe, sondern hinkt um die Zeit des Pings hinterher. public void CmdShoot(){ GameObject bullet = (GameObject) GameObject.Instantiate (bulletPrefab, spawnPosition.position, spawnPosition.rotation); bullet.GetComponent<Rigidbody2D> ().velocity = bullet.transform.right * BULLET_SPEED; NetworkServer.Spawn (bullet); } Die Lösung ist wohl "Client Side Prediction"? Also habe ich einfach eine Kugel lokal auf meinem eigenen Client gespawnt und die SpriteRenderer Komponente der Kugel, welche auf dem Server gespawnt wird, deaktiviert. Jetzt sehe ich meine eigene Kugel ohne Verzögerung direkt aus der Waffe fliegen. Die im Netzwerk aktive Kugel ist zwar nicht mit der lokalen Kugel synchronisiert, aber das macht nichts. Ich habe also 2 Kugeln pro Schuss -> Eine nur für mich sichtbare(fürs Optische) und die richtige im Netzwerk aktive Kugel(für Kollisionen usw.). Die Frage ist nun, wie ich die im Netzwerk aktive Kugel auch auf den anderen Clients sichtbar machen kann, da die SpriteRenderer Komponente ja deaktiviert ist. Wenn ich diese im Script der Kugel aktiviere, sehe ich natürlich meine lokale UND die im Netzwerk Aktive auf meinem eigenen Client. Optisch sieht das nicht wirklich berauschend aus. Gibt es dafür eine Lösung? Ich habe bereits versucht eine lokale Liste zu erzeugen und jede im Netzwerk gespawnte Kugel hinein zu legen. Funktioniert aber leider nicht, da der "Command" nur auf dem Server aufgerufen wird... Ich bin echt ratlos edit: Mit Client-Authority ist das Problem behoben, in dem ich in der Start Methode des Kugel-Scripts einfach die Bedingung if (!hasAuthority) { GetComponent<SpriteRenderer> ().enabled = true; } hinzufüge... Allerdings bekomme ich dann auf einem der beiden Clients eine Fehlermeldung: "HandleTransform no gameObject" in UnityEngine.Networking.NetworkIdentify: UnetStaticUpdate() Außerdem ist das wieder unnötiger Traffic, da die Kugel mit dem Server synchronisiert wird? MfG Coco07
  11. Verständnisfrage zu Scripts!

    Hey Hirk, erst einmal vielen Dank für deine Antwort. In deiner Antwort gehst du offensichtlich auf GUI Komponenten ein, welche bereits existieren. Wie aber sieht das mit neuen Komponenten ein, welche ich selbst erzeugen möchte? Beispielweise würde ich in Java eine Klasse haben, welche sich Character nennt und viele Daten und Objekte miteinander vereint. Dazu gehört zum Beispiel eine Waffe(eine eigene Klasse), ein Inventar(eine eigene Klasse) usw. Dieses kann ich in Unity nicht umsetzen, da würde ich dann in der Szene ein Inventar-Objekt erzeugen(empty) und ein Script draufhauen, welches eigentlich total unnötig ist. Genau wie mit Eigenschaften, welche zum Start des Spiels gesetzt werden müssen, denn dafür muss ich ein Script schreiben und es entweder auf wieder ein neu erzeugtes Objekt(empty) hauen oder sinnlos auf die Kamera setzen. Das sind all so Sachen, die für mich nicht richtig durchdacht erscheinen und man hätte sinnvoller gestalten können. Zum Beispiel möchte ich gerne dynamisch zur Laufzeit verschiedene Objekte ins Spiel bringen und verschieden sich bewegen lassen, verschiedene Physik zuweisen und von gerade passierenden Spielerverhalten beeinflussen lassen. Ist das möglich? Mir kommt das so vor, als würde man keine neuen Klassen schreiben, welche einen Zustand und Verhalten präsentieren, sondern nur beschreiben soll, was das in der Szene vorhandene Objekt in jedem Frame machen soll. Ich denke mal, es ist schwer zu verstehen, woraus ich hinaus will. Vielleicht versteht es der ein oder andere MfG Coco07!
  12. Hey Community, ich habe gestern angefangen mit Unity zu arbeiten. Dazu muss ich sagen, dass ich seit 2 Jahren aktiv(mehr als 5 Stunden täglich) in Java programmiere und sehr viele Erfahrungen sammeln konnte, gerade was die Spieleprogrammierung und auch Entwurfsmuster angeht. In Unity bringt mir diese Erfahrung leider rein gar nichts. Ich verstehe die Zusammenhänge zwischen den Objekten in der Szene und den Scripts leider überhaupt nicht(nichtmal ansatzweise)... Für mich sieht das so aus, als wenn man in der Szene die Welt(das Spiel) schon komplett zusammenbauen muss(statisch). Dann schreibt man sich Scripts, um das Verhalten dieser Objekte darzustellen. In Java habe ich mir Klassen geschrieben, welche ein komplettes Objekt(Zustand u. Verhalten) repräsentiert. Dann brauche ich nur noch die passenden Zustände wählen und Methoden auf diesem Objekt aufrufen. In Unity schreibe ich ein Script und ziehe es auf ein Objekt in der Szene -> 10 unterschiedliche Verhaltensregeln = 10 verschiedene Scripts? Wenn ich jetzt beispielweise ein Level in Java schrieb, dann beinhaltete dieses Level Referenzen auf in dem Level vorhandenen Objekten. Somit konnte ich die eigentliche Logik in der bspw. Level-Klasse implementieren und dieses Level aus verschiedenen Objekten zusammenbauen. In Unity muss ich jedem Objekt sein eigenes Verhalten gleich mitgeben? Wo bestehen denn die Beziehungen zwischen den Objekten? Kann ich die gleiche Herangehensweise wie in Java auch mit Scripts in Unity umsetzen oder muss ich mich daran gewöhnen? Jetzt werden manche denken, ich wäre wohl kein richtiger Programmierer, denn dieser könnte sich die Antworten im Netz selbst heraussuchen. Ich habe gesucht ohne Ende und finde immer nur Argumente dafür, dass meine Vermutungen stimmen. Lieg ich im Grunde richtig oder denke ich komplett falsch? Wäre echt sehr dankbar für eine kurze Einleitung oder Aufklärung über den Zusammenbau in einer solchen Engine. MfG Coco07!
  13. Einzelne Teile einer App animieren?

    So ihr beiden Helferlein , habe das ganze nun auf meinen eigenen Button angewendet und siehe da, wirklich zu 100% die gleiche Animation in 20 Minuten hinbekommen. Sieht nun so aus: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:duration="500" android:fromXScale="1" android:fromYScale="1" android:pivotX="50%" android:pivotY="50%" android:repeatMode="reverse" android:repeatCount="infinite" android:toXScale="1.07" android:toYScale="0.95" /> </set> Das das so einfach ist, hab ich mir jetzt nicht vorstellen können. Jetzt fehlt "nur noch" das Spiel Vielen Dank Euch!!!! Grüße Coco07!
  14. Einzelne Teile einer App animieren?

    Das hört sich doch mal gut an Werde das ganze mal mit XML testen, obwohl ich derzeit nicht so weit gekommen bin damit. Ich werde mein Ergebnis dann mal posten hier.. Vielen Dank und liebe Grüße Coco07!
  15. Einzelne Teile einer App animieren?

    Das glaub ich eher weniger. Die XML Animationen in Android können den Button dehnen oder zusammenquetschen. Hier sind doch nur größer kleiner, drehen usw. möglich? grüße coco07!
×