Jump to content
Unity Insider Forum

malzbie

Moderators
  • Content count

    4,946
  • Joined

  • Last visited

  • Days Won

    318

Everything posted by malzbie

  1. Das kann ich zwar nicht genau sagen, aber vielleicht liegt es daran, dass du einen Raycast ohne Richtung und Länge verschießt. Vielleicht ist im Build aufgrund von Ungenauigkeiten der Player und der Loot nie genau auf der selben Position und kann deswegen kein Hit kommen. Warum machst du das überhaupt mit nem Raycast? Reicht denn ein einfacher Trigger nicht aus?
  2. malzbie

    LookAt mit allen Extras benötigt, nur Wie?

    Wenn du das Humanoid-Animation-System benutzt, dann könnte dir ein altes Tutorial von mir helfen. Das ist zwar mit einer alten Version von Unity gemacht, aber grundsätzlich sind alle Elemente noch genauso da. In dieser Folge zeige ich, wie man den Kopf eines Männchens über die Animationsbefehle einem Ziel folgen lässt. Vielleicht hilfts dir.
  3. malzbie

    Vorstellung Lutz

    Schön, dass du dich vorstellst. Ja, es kann schon mal sein, dass du keine Antwort auf deine Frage bekommst. Es kommt dabei nicht nur auf die Fragestellung an, sondern ob es jemanden gibt, der sich in dem Thema auskennt und der dann zusätzlich auch noch da ist und die Frage sieht. Das muss nicht unbedingt an dir liegen.
  4. malzbie

    [Gelöst]Trigger vs. Distance

    Na dann werde ich mir doch mal deine Funktion kopieren.
  5. malzbie

    [Gelöst]Trigger vs. Distance

    @Sascha Hast du denn auch einen Vergleich zwischen deiner Entfernungsmessung und der eingebauten Vector3.Distance Funktion? Würde mich mal interessieren.
  6. malzbie

    [Gelöst]Trigger vs. Distance

    Stimmt schon. Eine Distance-Abfrage braucht einiges an Performance. Es ist aber, wie immer, eine Frage der Dosis. Wenn nur wenige Abfragen gemacht werden, ist das alles kein Problem. Wenn du aber viele Objekte im Spiel hast, die jedes Frame über abfragen wo der Spieler ist, dann wirst du das im Profiler sehen. Da werden einige Prozent deiner Leistung drauf gehen. Du könntest aber die Objekte einfach über eine Coroutine nur alle 0.5 Sekunden eine Messung machen lassen. Ich persönlich würde die Trigger nutzen. Die feuern ein Event, wenn es soweit ist und brauchen sonst eigentlich nur wenig Leistung. OnTriggerStay brauchst du in diesen Fällen gar nicht. Du setzt einfach eine Hilfsvariable auf true, sobald das OnTriggerEnter Event ausgeführt wird, und wieder auf false wenn das OnTriggerExit Event ausgeführt wird. Über diese Variable kannst du dann z.B. ein Leuchten des Objektes steuern. Außerdem triggert das Event in beide Richtungen, wie du ja selber geschrieben hast. Der Player kann über ein Trigger Event genauso etwas von dem Objekt erfahren. Eine ganz wichtige Sache ist auch, dass eine Distance Messung nichts darüber aus sagt, ob evtl. eine Wand zwischen dem Player und dem Objekt liegt. Einen Trigger kannst du einfach so positionieren, dass er nicht durch die Wand reichen würde.
  7. malzbie

    Malzbie's Flipper

    Ist bei mir so ähnlich. Gerade die jüngere Generation, die Flipper in der Kneipe nicht mehr kennt, spielen oft nur kurz an und erkennen die Komplexität meist nicht. Seit ich aber Leaderboards eingebaut habe, die die Punkte der Spieler auf der ganzen Welt anzeigen, erkennen sie wenigstens schon einmal, dass da viele Punkte geholt werden können. Dann lesen sie sich auch mal die Tischregeln durch und dann packt es sie meistens. Jedenfalls die, die nicht nur den freien Tisch runterladen um einfach ihre Spieleliste zu erweitern.
  8. Moin Leute. Ich hatte endlich mal richtig gut Zeit etwas an meinem Flipper zu basteln und ich will euch den aktuellen Stand hier mal zeigen. Ich bin total zufrieden mit dem Dingen und es macht mir richtig Spaß, weil es eben nicht nur programmieren ist, sondern eben auch gestalten. Ich kann ja alles irgendwie so ein bißchen. Und da ist dieser Flipper ein gutes Übungsprojekt, welches mich total erfüllt. Die Elemente erstelle ich in Cinema4D und nur wenige Dinge, sind modular nutzbar. Das macht zwar etwas Arbeit, wenn man merkt, dass dieses oder jenes nicht so funktioniert, aber man lernt halt auch worauf es ankommt. Bis jetzt habe ich gerade mal 11 kleine Scripts, die hauptsächlich für den Ton zuständig sind. Beleuchtung und Materialien/Texturen sind alle noch nicht in Arbeit. Wie die Spiellogik bzw. die Ziele sein sollen, das weiß ich schon zu 90%. Da ist noch einiges an Arbeit drin. Ist aber alles machbar. Denn bis jetzt habe ich gerade Mal so 50 Stunden investiert. (inklusive der Recherche im Inernet) Und wenn es auf 200 Std. hinaus läuft, dann ist das ein super Projekt für eine One-Man-Show. Bald kommt Neues!
  9. malzbie

    Malzbie's Flipper

    Danke! Nimm dir die Zeit! Je nach Tisch hat man die Möglichkeiten, solche Extras, wie du angesprochen hast, zu holen. Aber es stimmt schon. Ich habe mich da etwas zurück gehalten. Die Tische sind im Allgemeinen schon recht Zielbetont aber trotzdem auch komplex genug um diverse Punkte zu machen ohne das Ganze zu überladen. Herausfordernd sind sie allemal!
  10. Guck an! Gut, dass du's gefunden hast.
  11. malzbie

    MissingReferenceException bei null check

    Ich weiss nicht genau ob das dein Problem verursacht. Aber wenn du DestroyImmediate machst, wird das Objekt sofort zerstört, auch wenn der Updatezyklus noch nicht beendet ist. Das kann problematisch sein, wenn andere Dinge in diesem Frame noch auf dieses Objekt verweisen. https://docs.unity3d.com/ScriptReference/Object.DestroyImmediate.html Versuch mal das normale Destroy.
  12. Du hattest im 2ten Video gesagt, dass die Bewegung gleich wäre. Also ich sehe da immer noch eine schnellere Bewegung im Editor. Auch wenn's da schlechter zu erkennen ist. Kann es denn sein, dass der Editor irgendwie auch der Server ist und er deswegen einfach schneller das Bild zeichnet? Ich habe den Erklärteil im ersten Video übersprungen. Es ist ja so, dass die Bewegung im Editor nicht über das Ziel hinaus schießt und somit die exakt gleichen Inputs verarbeitet werden. Die beiden Netzwerkfenster haben aber ein Delay zum Editorfenster. Somit kann es eigentlich nur an der Verarbeitung der Daten liegen und das könnte natürlich im Build irgendwie anders sein, als im Editor. Vielleicht gibt's da irgendwelche Netzwerkdinge, die erst im Build aktiv sind. Ich weiß es aber nicht. Das einzige was ich sehe: Bei beiden Versionen ist der Editor schneller mit den Bildern. Beim 2019 ist das viel stärker, was darauf schließen lässt, dass im Build von 2019 etwas drin ist, was das Ganze etwas mehr verzögert, oder aber genau anders herum und der Editor ist einfach viel schneller geworden.... hmmm... Tja, was nun?
  13. malzbie

    switch-Problem

    Glaub ich nicht. Probier es einfach mal mit dem default aus. Es bringt ja nichts irgendetwas zu vermuten.
  14. malzbie

    switch-Problem

    Die Antwort ist gut! Was auf der Welt ist schon komplett zufriedenstellend?! Da es mit dem Index scheinbar besser geht, gehe ich davon aus, dass der String-Vergleich in deiner Switch-Anweisung nicht sauber funktioniert. Wenn du immer nur die 5000 als Wert siehst, kann es sein, dass die Variable einmal auf 5000 gesetzt wurde, als "Wintergerste" als String erkannt wurde. Es könnte sein, dass alle weiteren Strings keines deiner Vergleichsstrings entsprechen und somit ertrag auch nicht neu beschrieben wird. Somit bleibt der Wert 5000 erhalten. Es gibt aber bei Swtich-Case auch ein default ! Das solltest du nutzen, denn dann darüber kannst du etwas machen, wenn keine der vorigen cases eingetreten ist. Du kannst einen Defaultwert übergeben, oder, wie unten im Beispiel, einfach mal eine Warnung raus ballern! switch (Kultur){ case "Wintergerste": ertrag=5000.0f; break; case "Mais": ertrag=10000.0f; break; default: Debug.Log("Der String Kultur lautet >"+Kultur+"< und ist in meiner Abfrage nicht vorhanden!"); break; }
  15. malzbie

    [Gelöst]Objekte ausserhalb der Map zerstören

    Der Unterschied zwischen der Box und der Positionsmessung ist, dass das eine die Box macht und das andere alle Objekte machen müssen, die da runter fallen könnten. Von daher ist die Box wahrscheinlich performanter, weil sie einfach nur bei OnTriggerEnter() das andere Objekt zerstören bzw. deaktivieren muss. Aber selbst eine ständige Abfrage der Y-Position würde jetzt nicht viel kosten. Ist also eher eine Frage des persönlischen Geschmacks. Entweder über die Physik auswerten lassen oder eben ohne.
  16. malzbie

    [Gelöst]Objekte ausserhalb der Map zerstören

    So ne TriggerBox ist schon ganz ok. Die musst du dann aber eben recht groß machen, damit auch die schnellen Objekte getriggert werden und nicht da durch tunneln. Du kannst natürlich auch einfach eine Minimalkoordinate nutzen. Wenn irgendetwas in der Welt unter Y-10 ist, dann zerstört es sich. Beides geht natürlich nur, wenn die Welt recht eben ist.
  17. Ich hab mir das jetzt mal angeguckt, aber warum das obere Codebeispiel nicht genauso funktionieren sollte, verstehe ich nicht. Kann eigentlich nicht an der Reihenfolge liegen. Nunja... wenns geht, geht's!
  18. Ich hatte nicht viel Zeit für dein Mesh, aber ich konnte erkennen, dass deine Wichtungen nicht gut sind. Die Meshpunkte haben alle Wichtungen von allen 5 Joints des Armes. Die Punkte , die von jedem Joint die gleiche Wichtung haben, sehen gut aus, die die unterschiedlich gewichtet sind, verzerren schon beim Einfügen in der Szene. Sobald du einen Unterjoint drehst, verstärkt sich die Verzerrung, was klar ist, denn der Überjoint bleibt ja stehen. Warum von vornherein, schon Verzerrungen da sind, weiß ich jetzt erstmal nicht. Kann aber an der Animationsspur liegen. Evtl. ist dort im ersten Frame schon eine Änderung der Drehung der Joints drin. Egal. Seh zu, dass deine Punkte maximal von 2 Joints Wichtungen bekommen (an den Gelenken). Und versuch's erstmal nur ohne Animationsspuren um den Fehler einzugrenzen.
  19. malzbie

    begrenzte drehung des Spielers

    Das kann ich nicht sagen. Hab noch nie was mit nem NavMesh gemacht und weiss deswegen leider nicht, ob man Richtungen da raus bekommt, die einem bei der Drehbegrenzung weiterhelfen können.
  20. malzbie

    Angle Y 180 ergibt Y=180 Z=180

    Ich denke dein Problem kommt vom Gimbal Lock. Also jetzt nicht direkt, aber hat mit dem Phaenomen zu tun. Kannst ja mal das Netz dazu durchsuchen, denn ich kann das schlecht erklären. Tritt immer dann auf wenn 90° Winkel anstehen. So auch bei dir mit 180, -180, 0 oder 360. Quaternion umgeht dass Problem mit dem 4ten Vectorteil und dann gibt es keinen Gimbal Lock. Problem dabei ist aber die Wandlung in Eulerangles. Denn dann kann es zu diesen Verdrehungen um 180° kommen weil jetzt ja der 4 Vectorteil nicht mehr genutzt wird und somit 2 Ergebnisse möglich sind. Wie ich schon gesagt habe, ich kann es schlecht erklären.
  21. malzbie

    GridCollision

    Schwer zu sagen. Es kann sein dass du einen Fehler im Programm hast, der sich im Build erst auswirkt. So kann es sein, dass du z.B. ein Objekt nicht referenziert hast. Es kann auch daran liegen, dass du deine Szene dynamisch erstellst, und die Prefabs eben keinen Collider haben. Es könnten aber auch noch 100 andere Möglichkeiten sein. Wir haben viel zu wenig Informationen über dein Projekt, um sagen zu können, was bei dir den Fehler verursacht.
  22. malzbie

    begrenzte drehung des Spielers

    Willkommen. Schwierig... Ist das Spiel physikalisch realisiert oder nicht? Wird der Fluss zufällig generiert oder ist er vorgefertigt? Jedenfalls könntest du den Flusslauf als Orientierung nutzen. Du hast ja sicherlich links und rechts ein Ufer, welches mehr oder weniger Parallel zueinander Verläuft. Dieses könntest du als Maximaldrehpunkt ermitteln. Also 90° zum Uferverlauf wäre dann die Maximaldrehung in die linke bzw. rechte Richtung. Wenn der Fluss vorgefertigt ist, kannst du auch ganz einfach Wegpunkte einsetzen, die du als Orientierung nutzt. Der Wegpunkt hinter dem Kanu und der ver dem Kanu würden dann die 0 Linie ergeben, zu der du dich dann maximal 90° in beide Richtungen drehen kannst. Da ja ein Fluss in Schlangenlinien verlaufen kann, brauchst du jedenfalls irgend etwas was dir sagt, wo hinten ist, denn hinten kann in der Welt gesehen ja auch mal links oder rechts sein.
  23. Jo, gerne! Es hat schon ein paar Minuten gedauert, bis ich die Werte heraus gefunden hatte. Aber irgendwie reizen mich solche Dinge enorm. Ich muss dann einfach wissen, wie es funktioniert. Vorallem, wenn ich erkenne, dass da irgendwas getrickst wurde.
  24. Ich konnte es nicht lassen und habe die nötigen Werte ermittelt. Schau hier:
×