• 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

3ncrypt0

Members
  • Content count

    130
  • Joined

  • Last visited

  • Days Won

    2

3ncrypt0 last won the day on September 16 2016

3ncrypt0 had the most liked content!

Community Reputation

7 Neutral

About 3ncrypt0

  • Rank
    Advanced Member

Recent Profile Visitors

1,539 profile views
  1. Ich habe nun noch was anderes via Google gefunden: (Zum Testen im Editor mit Maus) - OnMouseDrag funktioniert nun super. Das Sprite dreht sich in die gewünscht Richtung. Allerdings sollte es sich auch bei MouseUp weiterdrehen mit der Kraft, die ich durch die "Länge" und Geschwindigkeit des Swipes berechnet habe/werde... Ich dachte ich bekomme in der DragFunction angularVelocity, dem ist aber nicht so. Wie könnte ich denn nun am besten das Rad weiterdrehen? using System.Collections; using System.Collections.Generic; using UnityEngine; public class RotateController : MonoBehaviour { private float baseAngle = 0.0f; private float velo = 0; void OnMouseDown() { Vector3 pos = Camera.main.WorldToScreenPoint(transform.position); pos = Input.mousePosition - pos; baseAngle = Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg; baseAngle -= Mathf.Atan2(transform.right.y, transform.right.x) * Mathf.Rad2Deg; } void OnMouseDrag() { Vector3 pos = Camera.main.WorldToScreenPoint(transform.position); pos = Input.mousePosition - pos; float ang = Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg - baseAngle; //transform.rotation = Quaternion.AngleAxis(ang, Vector3.forward); this.GetComponent<Rigidbody2D>().MoveRotation(ang); //this.velo = this.GetComponent<Rigidbody2D>().; Debug.Log("Drag: "+this.velo); } private void OnMouseUp() { Debug.Log("Up: "+this.velo); this.GetComponent<Rigidbody2D>().AddTorque(velo); } }
  2. Hi, seit gestern zerbreche ich mir den Kopf darüber, wie ich ein Sprite (in dem Fall einen Kreis) mittels Touch.move in die richtige Richtung drehen kann. Hier mal eine Zeichnung wie das gemeint ist: Fall 1-4 habe ich mehr oder weniger hinbekommen. Ich habe den Bildschirm einfach in 4 Sektionen unterteilt und prüfe bei Touch.began wo ich anfange. Bei Touch.ended prüfe ich den direction Vector2, was größer war, X oder Y um zu erfahren, ob ich quer oder längs gewischt habe und daraus kann ich dann entscheiden, wie der Kreis sich drehen sollte. Wenn ich nun aber wie in Bild 5 z.B. von oben rechts nach unten Links wischt und eigentlich mehr nach links als rechts, Y aber länger ist, dreht sich der Kreis im Uhrzeigersinn anstatt gegen den Uhrzeigersinn. Soweit verständlich? Ich habe nun schon einige Spiele gesehen wo man ein Sprite mit dem Finger so drehen kann, wie es normal wäre, aber ich komme einfach nicht dahinter, wie ich dieses Lösen kann und bei Google werde ich auch nicht wirklich fündig. Hier mal mein Code bei dem ich jedes mal ein Schmunzeln habe, da dieser wirklich nicht sauber ist: Hier prüfe ich, wo ich auf dem Bildschirm beginne zu wischen. switch (touch.phase) { // Record initial touch position. case TouchPhase.Began: startPos = touch.position; startTime = Time.time; moveTime = 0; //top left if (touch.position.x < Screen.width / 2 && touch.position.y > Screen.height / 2) { this.touchBeganLocation = 0; } //top right else if(touch.position.x > Screen.width / 2 && touch.position.y > Screen.height / 2) { this.touchBeganLocation = 1; } //bottom left else if(touch.position.x < Screen.width / 2 && touch.position.y < Screen.height / 2) { this.touchBeganLocation = 2; } //bottom right else if(touch.position.x > Screen.width / 2 && touch.position.y < Screen.height / 2) { this.touchBeganLocation = 3; } this.location.text = "Loc ID: " + this.touchBeganLocation.ToString(); break; Hier prüfe ich die Wischrichtung und wie sich der Kreis drehen sollte. Die Funktion wird in der touch.ended aufgerufen: void calculatePower(float force, Vector2 direction, int touchBeganLocation) { switch (touchBeganLocation) { //top left case 0: if(Mathf.Abs(direction.x) > Mathf.Abs(direction.y)) { //horizontal if(direction.x > 0) { //cw this.GetComponent<Rigidbody2D>().AddTorque(-force, ForceMode2D.Impulse); } else { //ccw this.GetComponent<Rigidbody2D>().AddTorque(force, ForceMode2D.Impulse); } } else { //vertically if(direction.y < 0) { //ccw this.GetComponent<Rigidbody2D>().AddTorque(force, ForceMode2D.Impulse); } else { //cw this.GetComponent<Rigidbody2D>().AddTorque(-force, ForceMode2D.Impulse); } } break; //top right case 1: if (Mathf.Abs(direction.x) > Mathf.Abs(direction.y)) { //horizontal if (direction.x > 0) { //cw this.GetComponent<Rigidbody2D>().AddTorque(-force, ForceMode2D.Impulse); } else { //ccw this.GetComponent<Rigidbody2D>().AddTorque(force, ForceMode2D.Impulse); } } else { //vertically if (direction.y < 0) { //ccw this.GetComponent<Rigidbody2D>().AddTorque(-force, ForceMode2D.Impulse); } else { //cw this.GetComponent<Rigidbody2D>().AddTorque(force, ForceMode2D.Impulse); } } break; //bottom left case 2: if (Mathf.Abs(direction.x) > Mathf.Abs(direction.y)) { //horizontal if (direction.x > 0) { //ccw this.GetComponent<Rigidbody2D>().AddTorque(force, ForceMode2D.Impulse); } else { //cw this.GetComponent<Rigidbody2D>().AddTorque(-force, ForceMode2D.Impulse); } } else { //vertically if (direction.y < 0) { //ccw this.GetComponent<Rigidbody2D>().AddTorque(force, ForceMode2D.Impulse); } else { //cw this.GetComponent<Rigidbody2D>().AddTorque(-force, ForceMode2D.Impulse); } } break; //bottom right case 3: if (Mathf.Abs(direction.x) > Mathf.Abs(direction.y)) { //horizontal if (direction.x > 0) { //ccw this.GetComponent<Rigidbody2D>().AddTorque(force, ForceMode2D.Impulse); } else { //cw this.GetComponent<Rigidbody2D>().AddTorque(-force, ForceMode2D.Impulse); } } else { //vertically if (direction.y < 0) { //cw this.GetComponent<Rigidbody2D>().AddTorque(-force, ForceMode2D.Impulse); } else { //ccw this.GetComponent<Rigidbody2D>().AddTorque(force, ForceMode2D.Impulse); } } break; } } Ich finde das irgendwie viel zu umständlich...oder befinde ich mich auf dem richtigen Pfad? Danke für Eure Hilfe und Kritik Jochen
  3. Moin, @Zer0Cool Ich habe da nur einen Fehler, der mich noch einmal daran erinnert, dass das System unerwartet heruntergefahren wurde. Ansonsten ist alles. Mein System ist zwar schon etwas älter, aber Spiele wie BF1 oder Arma3 etc. funktionieren tadellos. (Enter geht hier gerade nicht...) @Mabenan Treiber sind alle auf dem neusten Stand. Ich habe dieses Problem wirklich häufiger und habe dabei auch schon komplette Scenen verloren da diese nach einem Neustart nicht mehr zu öffnen waren. Der Fehler ist auch bei früheren Unity Versionen aufgetreten.
  4. Hi zusammen, ich bin heute mit einem neuen Projekt gestartet. Eine 2D App. Jetzt habe ich das Problem, dass wenn ich ein Build erstelle, ich 3 mal Shader compiler failed bekommen und dann Bluescreen oder aber die Kiste startet ohne Meldung einfach neu. Ich habe das Package PostProcessing hinzugefügt da ich Motion Blur benötige. Entferne ich dieses komplett, funktioniert es. Aber das kann es doch nicht sein?!?! Bei meinem anderen Projekt habe ich das Gleiche mit SpeedTrees. Ich muss aber auch dazu sagen, dass wenn ich Motion Blur anhabe, ich diesen Effekt im Editor nicht sehen kann. Ich hatte vorgestern auf meinem MacBook einen Prototypen von dem Spiel erstellt und dort auch MotionBlur eingesetzt (Aber das alte) und habe es im Editor und Smartphone gesehen und ich hatte auch keine Probleme beim Build. Auf meiner Windows Maschine sehe ich nicht einmal das alte Motion Blur im Editor. Meine Unity Verion: 5.6.0f3 Da meine Kiste auch durchstartet habe ich keine Möglichkeit einen Bericht zu speichern. Was kann ich tun? Im TaskManager sehe ich, dass 8 Prozesse für den Shader beim Build laufen und meine CPU auf 100% rennt (wobei sie immer auf 100% bei einem Build rennt). VG Jochen
  5. Hi, warum nimmst Du hier die Z Achse: Kann das der Fehler sein? VG
  6. Hi, @Zer0Cool Das habe ich gerade eben mal ausprobiert. Ich habe alle Objekte in ein EmptyGO gepackt, dieses dann auf 0.1 runterskaliert und den Bake Prozess angeworfen. Nach 30sec war er fertig. Dann habe ich Lightmap Resolution auf 40 gesetzt und es dauerte insgesamt ca. 3min. Dann habe ich das Objekt wieder auf 1 skaliert, jedoch ist das Ergebnis nicht sooo hübsch. Ich taste mich gerade einmal ran und erhöhe immer weiter die Lightmap Resolution. Auch interessant ist, dass ich nun anstatt 20MB Lightmaps nur noch 2,7MB habe. Sobald ich z.B. die Skalierung auf 0.15 setze, geht garnichts mehr - dann dauert es 5 mal so lange. Hier mal ein vergleich: Hier jetzt einmal das Ergebnis mit einer Lightmap Resolution von 200. Bakezeit ca. 7-8min. Lightmapgröße 5,3MB. Allerdings finde ich die "Dreiecke" an den Balken komisch. Da dürfte eigentlich kein Schatten sein, da aus der Richtung das Licht kommt. Scheint so, als würde dass von den inneren Balken gespiegelt werden. Kann auch sein, dass ich da einen UVW Fehler eingebaut habe....
  7. Es scheint tatsächlich an der Größe zu liegen https://forum.unity3d.com/threads/light-transport-problem-with-large-objects.310405/ Ich habe das Mesh erst einmal in 5x5 aufgeteilt, den Meshes in den Lightmap Settings Low Parameter zugewiesen und Scale in Lightmap auf 0.05 und es ging relativ schnell (15min ca.) Das Ergebnis gefiel mir natürlich nicht (ist auch erst eine Testscene - will aber wissen was da geht). Nun habe ich das Mesh in 12x12 aufgeteilt und lasse es ohne Veränderung an den Settings laufen. Er ist auch direkt durch das Clustering so gelaufen. Natürlich habe ich nun 144 Objekte nur als Terrain. Ob das einen Vorteil bringt bleibt abzuwarten. Ich könnte evt. mit Occlusion Culling versuchen noch etwas rauszuholen. Aber die DC steigen trotzdem. Mal abwarten, was dabei gleich rauskommt... Und ja, das Mesh ist wirklich etwas heftig - habe aber ein Plugin verwendet
  8. Guten Morgen zusammen, @Zer0Cool Die Idee ist nicht schlecht, allerdings hat das auch nichts gebracht - Ich habe die Idee mit den Models nun erst einmal verworfen und werde die wohl nocheinmal komplett neu moddeln. Allerdings stehe ich gerade vor einem anderen kleinem Problem, welches hier auch reinpasst (bevor ich einen neuen Thread aufmache). Ich habe mein Terrain zu einem Mesh gewandelt für bessere Performance auf dem mobil Gerät. Allerdings, kann ich meine Scene nun nicht mehr baken? Er hängt bei 5/11 Clustering | 1 Job. Auch wenn ich nur dieses eine Mesh aktiviert habe. Das Terrain hat die Größe 500x500. Ich hänge mal einen Screen an. Ich habe auch schon Lightmap Size vergrößert und Scale in Lightmap auch schon auf 0.01. Ich kann zwar das Mesh in mehrere Teile generieren, allerdings erhalte ich dann so doofe Schatten an manchen Stellen. Oder ist das die einzige Möglichkeit, da das Terrain Mesh zu groß ist?
  9. Guten Morgen, bei Multiplayer Spielen solltest Du dich erst einmal über die Kosten von Server und Service informieren - auch womit du den MP Service umsetzen willst, denn da stehen ja mehrere zur Auswahl (Unity, Smartfox usw.). Hast Du erst einmal ein Spiel veröffentlicht, muss der Service auch laufen. Vg
  10. Guten Morgen! Um dem Hitze Problem weiter auf den Grund zu gehen, habe ich noch ein wenig herum probiert. Vorweg aber kurz: Von jetzt auf gleich bekomme ich max. nur noch "70fps" im Editor - Gfx.WaitForPresent. Das bedeutet doch, dass die CPU auf die Graka wartet. Wenn ich eine neue Scene erstelle und einfach starte ohne Objekte oder sonstwas, komme ich trotzdem nicht über 70FPS. VSync ist aus...! CPU Time lag immer bei 1ms ca. im Editor. Nun durchgehend 15ms. Was kann ich da denn tun? Hat sich gerade erledigt...hatte DXtory im Hintergrund laufen. Hatte es zwar geschlossen aber hat sich dabei wohl aufgehangen... Nun zum Hauptproblem: Ich hatte mir gestern eine neue TesteScene erstellt mit einem Terrain und darin dann ein paar (8Stk.) Objekte die ich mittels Glow Effekt zum leuchten bringe (MK Glow). Das ganze funktioniert auch recht gut - auf dem Android erhalte ich 60-70FPS sofern ich das Smartphone nicht über Unity Debugge, denn das bringt mich auf 30FPS. Der Profiler hat mir angezeigt dass die CPU bei 30-50+ms liegt Also habe ich eine App heruntergeladen, mit der ich CPU, RAM und Temp während ich die App teste, anzeigen lassen kann. CPU liegt bei 25-30%, Ram bei 50-60% und die Temperatur schießt in kürzester Zeit von 30 auf 60+ hoch. Das Terrain habe ich zudem durch ein Mesh getauscht. Hier mal ein kurzer Ausschnitt aus dem Profiler. Wie gesagt, ohne Profiler 60FPS und es läuft mega flüssig - Scene ist auch hier mit einem Mesh als Terrain und 8 Objekte mit dem MK Glow Effekt. Eigentlich sieht alles gut aus, auch die CPU Last wenn ich diese auf dem Smartphone via App anzeigen lasse. Aber das Smartphone wird wirklich verdammt heiß und ich habe kein Fieber Ich habe nur ein Licht in der Scene ohne Schatten! Realtime GI ist ausgeschaltet. Alle Objekte sind statisch. Es fängt ja auch schon an, wenn ich die App starte und nur im Menü bin.... Was könnte das noch sein? Denn vor allem mein Akku leidet darunter (Akku Temp liegt bei ca. 40°). Cheers EDIT: Ich werde es gleich noch einmal versuchen, die Framerate auf 40 oder 30FPS zu begrenzen und lese dann noch einmal alle Daten aus. Vielleicht bringt es ja diesmal was.
  11. Ja, genau davon gehe ich gerade auch mal aus - das Mesh ist jetzt auch nicht das sauberste, war halt ein Asset aus dem Store Dann werde ich wohl heute Abend mal mein 3D Programm anwerfen und die Objekte selber modeln. (Wenn das Texturieren nicht immer so lange dauern würde...und dabei setze ich schon Quixel ein). Danke und VG
  12. Hi @malzbie, ich verwende zum zusammenführen der Meshes hier ein Plugin.Auf dem original Mesh ist die Option allerdings gesetzt. VG
  13. Hi, das kann ich so nicht ganz nachvollziehen, da es auf anderen Maps in ähnlicher Größe auch funktioniert hat. Es werden ja je nach Bedarf mehrere Lightmaps angelegt. In dem ersten Screenshot sind es z.B. 18 Stück. Zudem habe ich gerade eben einfach nur einen Turm als zusammengeführtes Mesh genommen und dann den Bake Prozess gestartet mit dem gleichen Ergebnis!
  14. Guten Morgen zusammen, ich habe gestern in einer Map mehrere Meshes zu einem zusammengeführt und dann meine Baked Lighting gestartet - das Ergebnis ist aber alles andere als gut. Auf anderen Maps mit zusammengeführten Meshes hatte ich keine Probleme. Wenn ich das Baked Lighting auf das/die originalen Meshes ausführe, sieht alles gut aus. Indirect Resolution steht nun zwar auf 0.02 und Lightmap Resolution auf 30, aber nur weil ich das backen gestern 4 mal ausgeführt habe und es schon eine Weile dauert. Ich bekomme auch das gleiche Ergebnis mit Indirect Resolution 2 und Lightmap Resolution 40. Auch die Speichergröße der Lightmaps finde ich heftig. Auf normaler Auflösung lag ich bei ca. 80MB (was für mobile schon heftig ist, wie ich finde). Jemand eine Idee, was das sein könnte? Hatte zwar schon viele Probleme mit dem backen, aber noch nie sowas! Danke und VG Jochen EDIT: Hier mal ein Screenshot in der Baked Lightmap View Hier ein Screenshot, wie es bei gleicher Auflösung auf den original Meshes aussieht.
  15. Guten Morgen, ja das ist auf jeden Fall klasse! Ich habe immer gedacht, dass es besser ist, Occlusion Culling einzusetzen - allerdings erziele ich mit den gebackenen Meshes deutlich bessere Ergebnisse. Ich glaube aber auch, dass es abhängig von der Spielart bzw. Steuerung ist. Danke und Viele Grüße Jochen