Jump to content
Unity Insider Forum

Leaderboard

Popular Content

Showing content with the highest reputation since 12/21/2020 in all areas

  1. Hallo an alle, Ich wünsche uns für 2021 ...dass Corona wieder ein Bier ist ...dass Positiv wieder etwas Positives ist ...dass Tests wieder in der Schule stattfinden ...dass Isolieren wieder für Häuser und Kabel gilt ...dass man mit einer Maske Karneval feiern kann ...und dass Donald wieder eine Ente ist (Quelle Unbekannt) In diesem Sinne ein gutes Neues Jahr. Gruß Jog
    2 points
  2. Du kannst gerne Code einfügen, indem du beim Betrag-Schreiben über dem Text auf den Code-Button drückst (<>, neben dem Unity-Symbol) und da den Code einfügst PlayerPrefs.Get...-Methoden geben meines Wissens nach alle einen Default-Wert zurück, wenn kein gespeicherter Wert gefunden wird. Und wenn dem nicht so sein sollte, werfen die Dinger keine NullReferenceException. NullReferenceExceptions treten ja allermeistens dann auf, wenn vor einem Punkt ein Ausdruck steht, der zu null evaluiert (z.B. eine Variable, dessen Wert null ist, oder eine Methode, die null zurück gibt). Schaue
    2 points
  3. Nachdem das erste Szenarium weitestgehend fertiggestellt ist geht es heute an die zweite Spielwelt. Diesmal wird es nicht darum gehen Türme zu bauen. Vielmehr sind die Türme bereits fertig aufgebaut. Der Spieler muss jetzt die Gegnerwellen geschickt durch die Turmplattformen leiten damit sie den größtmöglichen Schaden erhalten und so zerstört werden. Hier ein paar Bilder vom neuen Level.
    2 points
  4. Das machst du bei den Importeinstellungen. Nicht im Debugmodus. Schau mal hier: https://docs.unity3d.com/Manual/GenericAnimations.html
    2 points
  5. Ob du jetzt deine bools überall verteilt oder alle auf einem Haufen hast, ändert ja an der Anzahl nichts. Das einzige, was sich ändert, ist dass die Daten plötzlich nicht mehr an der Stelle des Programms sitzen, wo sie relevant sind, sondern irgendwo anders. Von daher sind Werte auf den Kisten selbst schon ganz wünschenswert. ScrtipableObjects sind für viele irgendwie schwierig initial zu greifen. Du bist da nicht alleine. Ich versuch's mal so auszudrücken: Mit Komponenten kann man ja eine Menge cooler Sachen machen. Man kann welche im Editor erstellen und dann lauter Werte einstellen, da
    2 points
  6. Dann mach dir mal einen Haufen Debug.Logs da rein, und schau was alles in der Konsole landet, bevor der Fehler auftaucht
    1 point
  7. Okay, wir haben also eine plattformabhängige NRE. Das klingt für mich nach einem Problem mit der Initialisierung. Zwei Methoden (z.B. Start auf zwei Objekten) laufen in undefinierter Reihenfolge ab - im Editor zufälligerweise die eine zuerst, die eine Referenz setzt, auf Android dann zufälligerweise die andere, die die Referenz schon benötigt. Hier gibt's was dazu zum Lesen: http://blog.13pixels.de/2019/things-that-can-make-a-difference-in-unitys-play-mode-compared-to-your-build/ Alternativ, wenn auch unwahrscheinlich, könnte ein Objekt, das referenziert wird, den Tag "Editor Only" h
    1 point
  8. Dann würd ich mit dem Debug Build weiter machen. Erstmal in die Konsole schauen und wenn gar nix mehr hilft, Build mit dem Editor verbinden und loggen.
    1 point
  9. Wenn du das normale Input-Modul (eine der Komponenten, die Unity automatisch auf das GameObject "Event System" packt) benutzt, dann sollte das schon gehen. Wird nur nicht die onClick-Aktion ausgelöst und funktionieren die Animationen nicht (dass der Button etwas dunkler wird beim Drücken z.B.), oder passiert da gar nichts? In jedem Fall empfehle ich, mal Unity Remote anzuwerfen. Die App kannst du dir im Play Store besorgen. Dann lässt du mit angeschlossenem Gerät das Spiel im Editor laufen und siehst es auf dem Handy. Den Input schickt Unity Remote auch an den Editor. Vorher musst du aber
    1 point
  10. Moin! Ich habe jetzt schon lange nichts mehr gepostet obwohl ich an diversen Spielen dran bin. Nun will ich euch mal zeigen, woran ich hauptsächlich bastle. Es ist ein Arcade-lastiges Spiel, bei dem man mit Flugzeugen und nem Zeppelin Missionen erfüllen muss. Natürlich wird dabei geballert! Obwohl es ein 3D Game ist, bewegt sich alles nur auf 2 Ebenen. So wie bei alten Sidescrollern. Aber seht einfach selbst. Hier ist mal eine Minute aus meinem Prototyp.
    1 point
  11. Ich habe ein neues Projekt angelegt und das neue Input System installiert. Ich möchte einfach nur die Klick (Desktop)/Tap (Mobile) Position abspeichern. Ich weiß, dass das alte System schon etwas liefert - https://docs.unity3d.com/ScriptReference/Input-mousePosition.html - https://docs.unity3d.com/ScriptReference/Touch-position.html Ich möchte es aber mit dem neuen System umsetzen. Hier meine Input Map Konfiguration Hier ein Script für Tests public class FooBar : MonoBehavi
    1 point
  12. Ich habe meinen Fehler dank dieser Seite hier: https://forum.unity.com/threads/learning-new-inputsystem-when-and-how-is-the-cancelled-callback-used.969501/ endlich funden. Mein Fehler war scheinbar dass ich statt Action Type: "Button" den Action Type: "Pass Through" verwenden musste. ich verstehe nicht so ganz warum aber scheinbar resettet "performed" nicht wenn man Button als action type hat. bei "Pass Through" schon. Aber damit dass passiert muss man statt "Hold" bei Pass Through wohl für den selben Effekt "Slow Tap" benutzen (Siehe Bild). ich werd niemals schlau aus dem Inputsystem...
    1 point
  13. Hallo, ich bin gerade beim Testen meines zweiten Szenariums. Es wird darum gehen die Gegnerwellen durch die Gänge zu leiten und dabei für den größtmöglichen Schaden zu sorgen. Im Video könnt ich euch das in Aktion mal ansehen.
    1 point
  14. Hallo, Ich hab mal ein kleines Script geschrieben, das du einem Gameobject z.b. einem Cube mit einem Rigidbody zu weisen kannst. Wenn du dann mit der Linken Maustaste auf den Cube klickst wird dieser nach oben katapultiert und fällt wegen aktivierter Gravitation von alleine wieder nach unten. Vielleicht helfen die Kommentare dir etwas bei der Vorgehensweise. using System.Collections; using System.Collections.Generic; using UnityEngine; public class RigidbodyTest : MonoBehaviour { private Rigidbody myRb; //Eine Variable vom Typ Rigidbody erstellen public floa
    1 point
  15. Nur so eine Idee...bin auch nicht DER Experte in Unity, aber kann man das nicht mit Partikel machen? Kann mir Vorstellen, dass bei deiner Variante du viel von Hand coden musst, aber Unity hat dafür schon fertige Werkzeuge. Richtungsvektor definieren in die die Kugel fliegen soll Richtungsvektor dem Objekt übergeben Geschwindigkeit hinzumultiplizieren Geschwindigkeit reduzieren bis auf 0 (Zeitabhängig) -> dann übernimmt den Rest die Gravitation (realistischere Flugbahn) prüfen ob Geschoss Boden berührt hat oder Partikel verwenden
    1 point
  16. Ja, aber eine richtig umfassende Sammlung gibt es nicht. Wäre auch zu viel, muss man mit der Zeit kennenlernen. Aber du kannst einfach mal nach "things i wish i knew earlier unity"-Videos suchen... oder ähnlichen Für das spezifisch hab ich was für dich: http://blog.13pixels.de/2019/an-intro-to-serialization-in-unity/ [System.Serializable] kommt da drin nicht vor, aber baut auf dem Hintergrundwissen auf. Es markiert eine Klasse oder ein Struct als serialisierbar. Wenn eine Klasse von UnityEngine.Object erbt (so wie GameObject, Component oder ScriptableObject), dann kannst du das O
    1 point
  17. Hallo Schau mal hier: using UnityEngine; public class Example : MonoBehaviour { // Make the variable p not show up in the inspector // but be serialized. [HideInInspector] int p = 5; } und dem: class Test { // p will not be shown in the inspector or serialized [System.NonSerialized] public int p = 5; } Christoph
    1 point
  18. Nö, ist doch super. Eine statische Variable würde es auch tun und würde verhindern, dass man irgendetwas im Editor versehentlich falsch zuweist. Aber klingt doch gut! Eine Sache evtl. noch: Da es hier keinen Sinn ergibt, einen Wert im Editor einzustellen, da er vor dem ersten Auslesen sowieso von einer Tür überschrieben wird. "public" ist hier die richtige Wahl, da alle das Ding lesen und überschreiben können sollen. Aber dann kommt Unity halt an und will das serialisieren und im Editor anzeigen und was nicht alles. Wenn du aber das hier machst: [System.NonSerialized] public .....;
    1 point
  19. Da gibt es natürlich wieder mehrere Wege. Es kommt immer darauf an, wie du deine Animationen erstellt hast und ob alles nur ein Objekt ist, oder mehrere mit einem Vaterobjekt und Kindern. Wenn es mehrere Objekte sind, also die Klappe ein Kind des Raumschiffes ist, dann kannst du der Klappe auch einen Animator verpassen. Das Raumschiff selbst hätte einen Animator für die Bewegung im Raum und die Klappe hätte einen Animator für das Öffnen und Schließen. Ist alles nur ein Objekt, wird es etwas schwieriger, geht aber auch, denn du hast die Möglichkeit im Animator mit Layern zu arbeiten.
    1 point
  20. Hallo Ja, so würde ich das auch machen. Also der Tür sagen, welche Szene sie laden soll. Wenn das nicht immer die gleiche Szene ist, kannst du ja noch entsprechende abfragen machen und dem Script mehrere mögliche Szenen als Feld geben. Christoph
    1 point
  21. Ich würde da gar nicht so viel Semantik reinmachen wollen (so mit "welche Rolle hat die Tür im Raum"). Einfach ein Script wie dieses an das Tür-Prefab hängen: [SerializeField] private string sceneToOpen; private void OnTriggerEnter2D(Collider2D other) { if (other.GetComponent<Player>()) // simpler check, ob es der Spieler ist { SceneManager.LoadScene(sceneToOpen); } } Kann man natürlich noch hübscher machen und um alles mögliche erweitern.
    1 point
  22. Hallo, ich habe vor kurzem eine kleine Tutorialreihe zur Dynamischen Erzeugung von Meshes in Unity gestartet. Ich würde mich freuen wenn ihr mal vorbei schaut https://www.youtube.com/playlist?list=PL2W57uIQNodRaj0oVtt9ZN3yPNGSBRG4j
    1 point
  23. Doch doch, ist schon sinnvoll. Die Sache ist nur, dass ich mir mein eigenes geschrieben habe, als es das neue von Unity noch nicht gab. Und das Ding finde ich (semi-objektiv) immer noch besser Es bräuchte aber noch mehr Polishing, um das auch für andere zu releasen. In meinen eigenen Projekten benutze ich das aber den ganzen Tag Beide Teile (Action ist ein Button, Buttons haben keine Deadzone) klingen sinnvoll, aber die Summe ist Käse. Schade!
    1 point
  24. Boah, ich weiß schon, warum ich das Ding nicht benutze xD Man kann das Ding auch echt kaum debuggen, da der wichtige Kram ja in der magischen Methode passiert, die in Zeile 14 aufgerufen wird. Ich habe gerade auf Anhieb immerhin etwas gefunden, das darauf hindeutet, dass du mit dem Problem nicht alleine bist: https://forum.unity.com/threads/input-settings-deadzone-values-not-respected.723287/ Leider fällt mir sonst auch nicht sonderlich viel ein... dein Beispiel ist ja jetzt auch wirklich nicht zu abgefahren. Und es sieht alles gut und richtig aus, finde ich. Das einzige, was mi
    1 point
  25. Schau mal links in deiner Hierarchie: Das sieht verdächtig aus. Sollte sich mit dem Icon ganz oben abschalten lassen.
    1 point
  26. Klar, ist nicht so, dass das nicht funktionieren würde. Das Problem ist, dass niemand dich daran hindert, mal den Namen eines GameObjects zu ändern. Und in einem Monat hast du vergessen, dass GameObject X aber einen spezifischen Namen braucht, damit Script Y richtig funktioniert. Und plötzlich hast du nen dicken Bug und bei sowas ist der idR gleich von der Sorte "superschwer zu finden und zu beheben". Wenn du mal nicht alleine arbeitest, sondern in einem Team, ist die Wahrscheinlichkeit, dass da was schief geht, gleich nochmal viel größer. Strings sind Kacke. Die sollte man nach Möglichke
    1 point
  27. Die Überprüfung schaut nicht, ob die Build-Liste überhaupt so viele Elemente hat. Deshalb kracht es schon in deiner if-Zeile bei GetSceneByBuildIndex, bevor IsValid überhaupt aufgerufen wird. Da könnte SceneManager.sceneCountInBuildSettings helfen, aber ganz ehrlich - die Build-Liste ist ziemlich unberechenbar und einfach blind die nächste Szene zu laden kann ganz schnell in die Hose gehen. Da gibt's mehrere Wege, die ich besser finden würde. Am ehesten würde ich wohl zu einem ScriptableObject greifen, aber eine statisches String-Array, in dem die Namen deiner Szenen drin sind tut's auch wunde
    1 point
  28. Ich benutze das System nicht, daher hab ich keine Lösung parat, aber... das Ding generiert dir ja C#-Code, richtig? Kannst du diesen generierten Code evtl. finden und posten?
    1 point
  29. Was du da tust, ist eine mögliche Variante. Wenn etwas nicht von Anfang an da sein kann, wartest du bis es da ist. Die anderen beiden grundsätzlichen (!) Varianten sind Dafür sorgen, dass Dinge rechtzeitig da sind (ich weiß, ist stumpf). Lazy Initialization. Über Variante 1 hast du sicherlich längst nachgedacht, aber vielleicht hab ich noch etwas für dich. Je nach dem, was du da genau machst. Kennst du z.B. das Attribut [RuntimeInitializeOnLoadMethod]? Das kannst du über eine statische Methode packen. Unity führt diese Methode dann gleich zum Spielstart aus, vor allen Aw
    1 point
  30. Hallo kann ich absolut empfehlen. Ich arbeite viel damit. Christoph
    1 point
  31. Hallo Mach mal oben gizmo an, dann müsste der Rahmen zu sehen sein. Christoph
    1 point
  32. Das ist genau das was ich gesucht habe @Jog! Vielen Dank für die Hilfe Danke auch dir @Sascha. Werde zwischen beiden möglichkeiten etwas herumspielen bis es das ist, was am besten passt Für alle nachfolgenden die es interessieren könnte, so sieht der aktuell angepasste Code für mein Problem aus: void BarrelRoll(int value) { if (value < 0) { rb.AddRelativeForce(new Vector2(-barrelRollDistance, 0)); } else if (value > 0) { rb.AddRelativeForce(new Vector2(barrelRollDistance, 0)); }
    1 point
  33. Mit Transform.InverseTransformPoint hast du schon fast das Richtige gefunden. Transform.TransformDirection sollte da eher passen. Du kannst aber auch schön stumpf mit Transform.right arbeiten. Das ist einfach der Vektor, der zur rechten Seite des Objekts zeigt. Ein Minus davor und du hast die linke Seite. Da du mit einem Rigidbody arbeitest, kann Rigidbody.AddForceRelative (siehe @Jogs Post) natürlich auch gut funktionieren.
    1 point
  34. Ja, ich nutze es Professionell. Ich hätte mir dieses Display sonst auch nicht geholt. Aber wenn du irgendwie was mit Grafik machst, dann ist ein Pen-Display echt klasse. Egal ob Sculpting, Pixelart oder richtige Bilder/Grafiken/Texturen. Ich hatte vorher auch ein Zeichentablett, was natürlich auch funktionierte. Ich habe erst auf ein 13" Display gewechselt weil es einfach besser ist da zu Malen, wo man auch etwas sieht. Das 13" Display ist mir mit der Zeit dann zu klein gewesen, weil ich aufgrund meines Alters nicht mehr ganz so gut gucken kann! Und nun bin ich bei 22" angelangt. Es gib
    1 point
  35. Hallo Vielleicht hilft die das: http://blog.13pixels.de/2019/things-that-can-make-a-difference-in-unitys-play-mode-compared-to-your-build/ Christoph
    1 point
  36. Hallo, vielleicht hilft dir das weiter https://forum.unity-community.de/topic/15748-bewegung-in-sichtrichtung-von-partikel-per-player-rotation/?do=findComment&comment=109292 Gruß Jog
    1 point
  37. Hallo Grundsätzlich macht es Sinn, uns den Fehler mitzuteilen. Christoph
    1 point
  38. Ich habe mich jetzt mit der Erstellung der Gegner befasst. In der ersten Welle gibt es die Raptor-Klasse die dem Spieler das Leben schwer macht. Dabei handelt es sich um 8 verschiedene Gegnerarten mit unterschiedlichen Eigenschaften. Es folgen noch weitere Skills (Damage over Time und stud). Daran arbeite ich gerade. Hier eine Aufstellung der Raptor-Klasse.
    1 point
  39. Ja...lag doch nicht an der Liste ich verwende C# zum ersten mal "richtig" und war mir nicht sicher ob ich bei der Benutzung was falsch gemacht habe. Der Fehler lag an der Methode zur Objektbewegung. Wenn ein Objekt im Pool deaktiviert wird, dann sollte man auch die Werte wieder zurück stellen Sonst erhält das nächste aktivierte Objekt falsche Daten 😇 So einfach kann manchmal ein Programmiereleben sein...
    1 point
  40. Meine Nase ist eh zu lang, auf die Nase zu fallen wäre da eh nicht schlecht 😃 Mal schaun was da noch so passiert.
    1 point
  41. Hallo, In dieser Zeile liegt der Fehler, klein aber fein. War auch mal daran verzweifelt, da es keine fehlermeldung beim überschreiten des wertbreiches gibt. Bei new Color( ) liegt der Wertereich zwichen 0 und 1 als float. z.b. gameObject.GetComponent<Renderer>().material.color = new Color(0.2f,0.5f, 0.9f, 1f); Bei new Color32( ) liegt der Wertereich zwichen 0 und 255 als integer z.b. gameObject.GetComponent<Renderer>().material.color = new Color32(128,250, 60, 1); Sorry Sascha hab 2 sek. zu lange geschrieben
    1 point
  42. Kurzfassung: Color geht von 0 bis 1, nicht 0 bis 255
    1 point
  43. Schau mal hier. Glaube das erklärt dir was bei dir Falsch ist: https://docs.unity3d.com/ScriptReference/Color.html Ansonsten das hier benutzen: https://docs.unity3d.com/ScriptReference/Color32.html
    1 point
  44. Super, genau dieses Spine-Skript (SpineboyBeginnerView) verwende ich !! Das hast Du aber fix zusammen gebastelt. War mir eigentlich klar, daß man das im PlayShoot irgendwie integrieren kann. Zur Zeit werde ich diese Lösung erst mal nicht verbessern, da ich für meinen Enkel unbedingt noch das kleine Jump&Run fertig stellen muss. Die Aufgabe soll sein, Highscore ständig zu verbessern. Eine Szene, in der nach gewisser Zeit Monster und Money wieder zum Leben erweckt werden. Der Weihnachtsmann schmeißt Geschenk-Würfel von der Wolke, die den Player behindern. (Ich habe erst vor zwei Mona
    1 point
  45. Wenn du springst und dabei a gedrückt hältst, dann springst du in einem Frame und im nächsten Frame setzt du velocity wieder auf (links, 0) - die vertikale Geschwindigkeit ist also 0. Du kannst einfach die Komponenten eines Vektors überschreiben, anstatt ihn komplett neu zu setzen. Statt velocity = new Vector( ... ); machst du velocity.x = ...; Du änderst dabei x, fasst aber y nicht an. Wenn du gerade im Sprung bist und dann zur Seite steuerst, bleibt die vertikale Komponente intakt. Gleichermaßen überschreibt der Sprung nicht die horizontale Bewegung. Das Problem: C# h
    1 point
  46. Anbei ein Video mit dem Hintergrund vom Level 2, Sektor C-6-4: Ich habe nun wie @Thariel es vorgeschlagen hat den Pitch der Schüsse etwas geändert. Schreibt mir bitte, ob ich die Werte (nun von 0,95 bis 1,40) noch weiter setzen soll, oder ob es so passt. Als Nächstes werde ich das Level 2 komplett zusammenstellen. Dafür muss ich aber ersteinmal das Mutterschiff erstellen, welches am Anfang des Level den Spieler aus seiner Hangerbucht entlässt.
    1 point
  47. Hallo Ich benutze schon einige scriptable objects... Soda lässt grüßen. Gibt es so etwas wie einen totalen neutstart? Christoph
    1 point

Announcements

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

Weiterleitung zum Entwickler "daubit"



×
×
  • Create New...