Jump to content
Unity Insider Forum

Sascha

Administrators
  • Posts

    12,779
  • Joined

  • Last visited

  • Days Won

    689

Sascha last won the day on July 26

Sascha had the most liked content!

6 Followers

About Sascha

  • Birthday 08/13/1990

Contact Methods

  • Website URL
    http://13pixels.de

Profile Information

  • Gender
    Male
  • Location
    Hamburg
  • Interests
    Programmierung

Recent Profile Visitors

68,950 profile views

Sascha's Achievements

Advanced Member

Advanced Member (3/3)

2.6k

Reputation

  1. Wir haben keine Ahnung, wie dein Avatar funktioniert. Wir haben keine Ahnung, wie dein Spiegel funktioniert. Wir haben keine Ahnung, wer "andere" sind - redest du von einem Multiplayer-Spiel? Solange du nicht mit ein paar Infos nachhilfst, wird's schwierig. Ich könnte jetzt wild raten, und vermuten, dass du ein Multiplayer-Spiel hast, und was auch immer du tust, um Lippen zu animieren, wird bei allen Clients außer dem Sender ausgeführt. Du müsstest das dann so einstellen, dass es bei allen Clients ausgeführt wird.
  2. Jau! Hier ist mein Artikel zu dem Thema: http://blog.13pixels.de/2019/what-exactly-is-fixedupdate/ Ich hoffe, dass er beim Verständnis hilft, aber der Code, den du suchst, ist da auch schon drin
  3. Verstehe ich das also richtig - du möchtest sozusagen für jedes Objekt sein eigenes timeScale haben - dass das eine Objekt normal schnell und das nächste z.B. mit halb so schneller Zeit bewegt wird? Also... für den Fall, dass ich das jetzt richtig verstanden habe, habe ich hier etwas gefunden: https://forum.unity.com/threads/physics-simulate-for-a-single-object-possible.614404/ Das Problem ist ja, dass du auch eigentlich nicht einfach nur die Zeit umstellen kannst, sondern eigentlich jedem Rigidbody sein eigenes FixedUpdate-Intervall geben müsstest. Muss das denn sehr präzise sein oder ist das okay, wenn zwei gleich geworfene Würfel minimal woanders den Boden berühren, wenn sie unterschiedliche "Zeit-Einstellungen" haben?
  4. Ich weiß nicht so ganz, was "Zeit Manipulation" heißen soll... warum kannst du timeScale (meinst du deltaTime) nicht nutzen?
  5. Naja, du ziehst direkt den Wert aus "cooldowntimer". Der wird vermutlich nicht unbedingt immer zwischen 0 und 1 liegen. Du hast schon irgendwie die Methode GetFill, aber die macht nichts, weil sie nur rumrechnet und die Ergebnisse in lokale Variablen speichert.
  6. Ich vermute stark, dass dein Raycast (oder was auch immer du als Ground Check benutzt) den Trigger trifft und du deshalb als Grounded zählst, bis du den Trigger verlassen hast. Du springst also in jedem Frame ein bisschen weiter.
  7. Lang ist's her... aber da ich das Tool die Tage etwas hübscher gemacht habe, dachte ich, ich rufe mal in Erinnerung, dass es existiert Nach dem Update ist es jetzt ein Editor Tool (also alternativ zum Bewegen- oder Dreh-Werkzeug oben links in der Leiste zu finden). Das Options-Fenster ist jetzt auch viel hübscher, und man kann existierende Objekte aufheben und woanders hintun.
  8. Und woran scheitert's? Und sag jetzt nicht "ich weiß nicht, wie". Wenn du keinen Ansatz hast, geht's ab auf eine Plattform deiner Wahl und Grundlagentutorials durcharbeiten.
  9. Kommt drauf an, was "abschießen" heißt. Willst du Geräusche haben? Laser? Projektile? Raketen, die dem Spieler hinterher fliegen? Schaden hinzufügen? Schaden wegnehmen? Explosionen? Du musst schon was zu einem spezifischen Problem fragen. Fragen, die nur ein, zwei Schritte von "wie mache ich ein Spiel" entfernt sind, können wir dir nicht beantworten.
  10. @malzbie @jtuchel möchte einen Automation Test (keinen Unit Test!) schreiben, bei dem der Testcode die Spielfigur steuern kann. Damit kann man dann automatisiert testen, ob bestimmte Systeme funktionieren (wie "kann die Figur x Meter hoch springen"). Das Ziel ist hier, dass der Bewegungscode nicht extra erweitert werden muss, um diese "Kontrollübergabe" vom Spieler an den Testcode zu ermöglichen. Ob das Input-System das kann, weiß ich aber nicht.
  11. Au weia... bitte lade deinen Code nicht in Bildern hoch. Benutze stattdessen den Code-Tag (<> neben dem Unity-Icon). Ich weiß nicht so genau, was du mit diesen beiden Dingen meinst. Ich sehe auch nirgendwo, dass du irgendwo etwas von dem benutzt hast, was wir dir gegeben haben. Vielleicht übersehe ich es auch einfach nur, hast ja echt Unmengen gepostet, was überhaupt nicht relevant ist.
  12. Naja, der Zählt jetzt immer nur die Zeit runter, wenn eine Kollision passiert. Ist vielleicht etwas ungünstig. Eher sowas: private const float INVULNERABILITY_TIME = 0.6f; private bool vulnerable = true; private void OnCollisionEnter2D(Collision2D collision) { if (vulnerable) { ApplyDamage(); StartCoroutine(ApplyInvulnerability()); } } private IEnumerator ApplyInvulnerability() { vulerable = false; yield return new WaitForSeconds(INVULNERABILITY_TIME); vulerable = true; }
  13. Nö, hatte ich nicht vor Ich meine... Pooling schadet hier höchstwahrscheinlich nicht, aber es ist erstmal auch nicht unbedingt nötig. Performance soll man halt dann in Angriff nehmen, wenn sie zu einem Problem zu werden droht. Ich fand die Geschichte mit den autonomen Objekten erstmal wichtiger.
  14. Moin! Es gibt keinen Grund, eine "geschosseToDestroy"-Liste anzulegen. Anstatt die Geschosse da einzutragen, kannst du sie auch direkt zerstören. Was ich aber eigentlich noch wichtiger finde: Warum hast du ein zentrales Script, das deine Geschosse verwaltet? Warum verwaltet sich nicht jedes Geschoss einfach selber? Einfach die Bewegung und die Zerstörung von einem Script machen lassen, das du auf dein Prefab packst. Je weniger deine Komponenten andere Objekte verwalten, desto besser.
  15. Tatsächlich bin ich mal eine Zeitlang auf die semantische Gruppierung umgestiegen, also Modules Player Runtime (Also ingame-Scripts) Editor Prefabs Models Materials Camera Runtime Enemies Runtime Prefabs usw. Finde ich auch nach wie vor ganz cool. Wenn man an einem Teil des Projekts arbeitet, dann bleibt man auch in einem oder zwei Bereichen der Assets und ist nicht kreuz und quer am Editieren. Das Problem ist, dass ich auch eine andere Sache ganz cool finde: Mein Projekt nach Code und anderen Assets aufzuteilen. Texturen, Sounds und Szenen können in der Summe recht groß werden, und ich bin deshalb kein Fan davon, ein riesig aufgeblähtes Git-Repo zu haben, das aufgrund von Fortschritt im Code ständig Updates kriegt. Überhaupt mag ich es, wenn die Commit History meines Codes nicht mit Updates an irgendwelchen Bildern vollgemüllt ist. Deshalb habe ich inzwischen nur noch Code im "Modules"-Ordner, womit er eigentlich direkt wieder ein "Scripts"-Ordner ist. Nur halt mit Runtime- und Editor-Ordnern (und ggf. "Tests") in jedem "Modul". Aber das machen ja sowieso die meisten. Alle anderen Assets sind in einem Git-Submodul, das dann wiederum dieselbe Aufteilung hat. Man sollte dazu sagen, dass es keine optimale Lösung gibt, so ein zweidimensionales Problem in eine Ordnerstruktur zu drücken. Entweder, deine Prefabs sind in lauter Ordner verstreut, oder deine "Player"-Assets sind überall verstreut, weil der Code beim Code und die Prefabs bei den Prefabs liegen. Deshalb sollte man sich nicht auf saubere Ordnerstrukturen beschränken und z.B. Tags verwenden. Die werden ja gerne mal übersehen, aber du kannst bei allen Assets unten rechts im Preview-Fenster beliebig viele Tags anbringen. In der Suchleiste deiner Project View kannst du dann danach Filtern. So sucht z.B. "t:prefab l:tree" nach Prefabs mit dem "Tree"-Tag. Du musst dir das auch nicht merken, hast ja die Buttons rechts neben der Suchleiste. Wenn man das richtig nutzt, wird die Ordnerstruktur auch sofort weniger entscheidend für den Workflow, und man kann sie mehr nach technischer Notwendigkeit designen Eines noch: So oder so geht's mir mega auf den Keks, wenn ich abwechseln das eine und dann das andere Prefab (oder mehrere Szenen) bearbeite und ich da jedes Mal durch die Ordner klicken muss. Darum hab ich mir ein Fenster geschrieben, in dem man Favoriten anpinnen kann. Benutze ich immer wieder gerne, darfst du auch
×
×
  • Create New...