Jump to content
Unity Insider Forum

Sascha

Administrators
  • Content Count

    11,423
  • Joined

  • Last visited

  • Days Won

    554

Sascha last won the day on September 16

Sascha had the most liked content!

Community Reputation

2,341 Excellent

6 Followers

About Sascha

Contact Methods

  • Website URL
    http://www.indiepowered.net

Profile Information

  • Gender
    Male
  • Location
    Hamburg
  • Interests
    Programmierung

Recent Profile Visitors

39,481 profile views
  1. Naja, Splatmap-Shader halt... Hier hast du ein Tutorial:https://catlikecoding.com/unity/tutorials/rendering/part-3/
  2. Quaternion.LookRotation nimmt einen Blickrichtungs-Vektor und gibt dir die Rotation zurück, die ein Objekt haben muss, um in eben diese Richtung zu "gucken". Knackpunkt ist hier das Wort "Richtung", denn wenn du die Einschlagsposition des Rays übergibst, dann ist das nicht dasselbe wie eine Richtungsangabe. Nehmen wir an, der Vektor entspricht (-1,1), dann steht das für "oben links". Wenn dein Schiff sich aber nicht am Nullpunkt befindet, sondern z.B. auf Position (-1, 2), dann müsste das Schiff ja in Richtung (0,-1) schauen, also nach unten. Um die Richtung rauszukriegen, die da reingehört, musst du vom Zielpunkt den Ausgangspunkt, also die Position des Schiffes, abziehen. Quaternion rotation = Quaternion.LookRotation(hit.point - transform.position); So nebenbei: Wenn du Plane.Raycast benutzt statt Physics.Raycast, dann kannst du den Collider löschen und umgehst eine Menge potentiellen Ärgers.
  3. Keine Satzzeichen, kein Code, kein "wie ich das bisher versucht habe", keine Fehlermeldungen, nichts. Du machst es uns ganz schön schwer. Da du nicht darauf eingehen willst, was genau schief läuft, kann ich nur eine ganz allgemeine Antwort geben: Überlege dir, ob du die Input-Felder wirklich erzeugen willst. In vielen Fällen ist es sinnvoller, dass Dinge schon von vornherein da sind, aber ausgeblendet sind. Statt sie zu erzeugen, blendest du sie dann einfach ein. Das machst du mit dem Häckchen ganz oben links im Inspektor und dann mit GameObject.SetActive(true).
  4. Scripts, die in der geladenen Szene sind, kriegen Awake, OnEnable und Start aufgerufen. Scripts, die durch DontDestroyOnLoad den Szenenwechsel überlebt haben, hatten früher ein Event, auf das sie reagieren konnten, heute benutzt man dafür das Event SceneManager.sceneLoaded.
  5. Gibt verschiedene Pakete. Die kostenlosen fand ich alle auf die eine oder andere Weise doof, darum hab ich mein eigenes geschrieben, mit dem ich sehr zufrieden bin. Benutzt du Odin oder so? Denn vanilla würde man da ja nichts serialisiert kriegen oder im Editor manipulieren können. Sobald du keine einzelnen Objekte mehr hast, sondern beliebig viele und da entsprechend skalieren willst, kannst du z.B. RuntimeSets benutzen, wo sich jeder relevante Miniboss einträgt. Dein Health Bar-Bereich im UI muss dann natürlich (so oder so) die Anzahl der sichtbaren Health Bars regulieren. Da du in so einem Fall sowieso in der Regel nicht einfach nur mehrere gleiche Health Bars anzeigen willst, sondern irgendwie noch darstellen willst, welche Bar zu welchem Boss gehört, hast du damit dann direkt Zugriff auf beliebige weitere Eigenschaften der Zielobjekte. Wenn es um GameObjects geht, benutze ich gar keine mehr. Ausnahmslos.
  6. Wie kommst du darauf, dass der Farbbereich 0-100 sei? Der Color-Struct geht von 0-1 und die HSVToRGB-Methode erwartet Parameterwerte ebenfalls von 0-1.
  7. Glaub mir: Die Funktion, die ich dir verlinkt habe, nimmt dir den Hauptteil der Arbeit ab. Kannst dir ja einfach mal das Beispielscript kopieren und damit rumspielen.
  8. Wenn man vier Dinge gleichzeitig macht! 😁
  9. Für die erste Frage hast du bereits ein Thema geöffnet. Bleibe für alles weitere bitte bei einem Thema pro... Thema.
  10. Ich kann da jetzt den ganzen Tag blind raten, aber wäre halt besser, wenn du da einfach mal debugst. Dein Script, das du gepostet hast, ist halt in Ordnung. Wenn das nicht tut, dann hast du es offenbar nicht in der Szene. Oder es ist inzwischen anders, als du es gepostet hast.
  11. Klar, geht alles. Musst halt nur schauen, wie viel Aufwand das ist. Wenn du statt RBG HSV nimmst, kannst du mit dem H-Wert den Farbton bestimmten, S steht für Sättigung und V sozusagen für die Helligkeit. Du baust also einen Farbwert mit einem H-Wert zwischen Gelb und Braun. Du kannst auch den S-Wert vom H-Wert abhängig machen, um da eine Linie mit einem anderen Winkel durch das Farbspektrum durchzuziehen. Am Ende generierst du den Farbwert dann mit Color.HSVToRGB.
  12. Zum einen gibt's natürlich den stinknormalen Test, dass du das Spiel laufen lässt und schaust, wie gut das geht. Dann gibt's aber noch Unitys Profiler, mit dem man Frame für Frame schausn kann, was wieviel gekostet hat. Und zuletzt kannst du noch die Performance von zwei Dingen, die dasselbe auf unterschiedliche Art tun, mit einem Benchmark testen. Dafür hab ich mal eine kleine Klasse geschrieben, die man dafür benutzen kann. Und weil ich vergessen habe, den Post auch abzusenden, war malzbie jetzt schneller
  13. Was hast du denn jetzt überhaupt geändert?
  14. Dann ist wohl noch mehr in der Klasse, als du gepostet hast. Das, oder du hast doch irgendwie Escape gedrückt. Vielleicht ist deine Tastatur kaputt oder so. Kannst ja mal ein Debug.Log einfügen und das im Editor testen. void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { Debug.Log("Escape gedrückt."); Application.Quit(); } }
  15. Also, an dem Ding kann es eigentlich nicht liegen, das ist in Ordnung. Wenn du dieses Script rausnimmst, sollte der Fehler dadurch nicht behoben sein.
×
×
  • Create New...