Jump to content
Unity Insider Forum

malzbie

Moderators
  • Content count

    4,878
  • Joined

  • Last visited

  • Days Won

    306

malzbie last won the day on February 2

malzbie had the most liked content!

Community Reputation

1,474 Excellent

2 Followers

About malzbie

  • Rank
    Moderator
  • Birthday 10/30/1968

Profile Information

  • Gender
    Male
  • Location
    Kassel, Hessen, Deutschland

Recent Profile Visitors

17,381 profile views
  1. malzbie

    Bewegliche Kamera und bewegliche Plattformen

    Ob das so ok ist, kann ich nicht sagen. Extrapolate heisst ja, dass quasi vorberechnet wird, wo sich der RB befinden wird. Es ist also eine Annahme. Es kann schon sein, dass bei "schnellen" Bewegungen Probleme auftauchen könnten. Es kann auch sein, dass das Verhalten seltsam aussehen kann, wenn es zu Richtungsänderungen kommt. Die Frage ist, ob du überhaupt alles mit der Physik machen musst. Ich persönlich würde den Character über Transform steuern und auch die Schwerkraft damit simulieren. Bei einem Plattformer Game sollte es nie zu so hohen Geschwindigkeiten kommen, dass die Collider durchtunnelt werden. Aber das ist meine eigene Meinung. Man kann natürlich auch die Physik komplett nutzen ( mit ein paar Problemchen, wie du auf der Plattform ja siehst). Es gibt viele funktionale Möglichkeiten. Es geht auch ganz ohne RB. Da muss man eben mal ein wenig Raycasten, um zu erkennen, ob und was unter oder vor einem ist.
  2. malzbie

    Cryptarium

    Der ist wirklich super geworden!
  3. malzbie

    Bewegliche Kamera und bewegliche Plattformen

    Also: Die Update wird sooft aufgerufen, wie deine Garfikkarte die Bilder darstellen kann und dein Prozeossor alles berechnen kann, bzw. mit der Geschwindigkeit der Targetframerate. Das bedeutet, dass sie bei einem schnellen System auch ohne weiteres 200 Mal die Sekunde aufgerufen werden könnte. Es ist aber immer abhängig von all den Berechnungen die da passieren und ist somit immer variable. Dein FixedUpdate Zyklus ist voreingestellt und kann von dir Erhöht oder auch verringert werden. In der Regel ist das ein Synchroner Wert, es sei denn, du hast plötzlich ganz fieße Physikberechnungen drin, die dann diesen Zyklus kurzzeitig verlängern würden. Aber wie dem auch sei, beide Zyklen sind nie synchron und deswegen kann es zum Ruckeln zwischen beweglichen Objekten kommen, wenn sie in unterschiedlichen Updatezyklen verarbeitet werden. In der Regel lässt man alles, was nicht physikalisch bewegt wird, über die Update ablaufen. Um das ruckeln eines RB's zu unterbinden, kann man ihn auf interpolate stellen. Dadurch wird der Zwischenschritt, den die Update zeigen würde, aber die Fixedupdate noch nicht hat, ermittelt und trotzdem gezeichnet. Die Kamera sollte dem Objekt trotzalledem nie direkt folgen. Ich würde über Lerp ein weiches Nachfolgen generieren. Man kann bei Lerp eigentlich sehr gut einstellen, wie schnell sie der Kamera folgt, denn da stellt man ja ein, wieviel % des Weges zwischen jetziger Position und dem Ziel überwuden werden soll. myPosi =transform.position; myPosi = Vector3.Lerp(myPosi, targetPosi, speed * Time.deltaTime); transform.position= myPosition; Die Kamera wird zwar nie die Zielposition erreichen, aber das macht nix. Versuch das mal so.
  4. malzbie

    Space Opera

    Recht hübsch. Aber findest du GUI nicht etwas zu klein?
  5. malzbie

    Rigidbody rutscht auf beweglichen Plattformen

    Du wirst nicht drum herum kommen zu lernen. Falls du denkst, dass dir die Leute irgendwelche Codes zur verfügung stellen, die dann auch bei dir funktionieren, hast du dich getäuscht. Da niemand weiß, wie dein Spiel aufgebaut ist, ist der Code auch nicht für dein Spiel angepasst. Anpassen musst du selber! Kleiner Tipp, weil du ja nicht weißt, wie das Script die Figur mit der Plattform verbindet: Parent = Elternteil, verständlich ausgedrückt, Vater! Sobald deine Figur die Plattform, die natürlich dieses Script haben muss, triggert, wird sie ein Kindobjekt der Plattform. Beim Verlassen des Triggers wird dieses Vater-Kind Verhältnis wieder aufgehoben. Ein Kindobjekt wird vom Vaterobjekt mit genommen, wenn sich das Vaterobjekt bewegt. Das funktioniert aber nur solange, bis andere Kräfte oder Bewegungen dagegen arbeiten. Das ist auch gut so, denn du willst ja nicht an der Plattform festkleben, sondern dich darauf bewegen können. So, jetzt musst du dich schlau machen, wie Collider funktionieren, was ein Triggerevent ist und wie es funktioniert, was die Transformkomponente ist, und was das GameObjekt im Code zu suchen hat. Ohne dieses Wissen kommst du nicht weiter.
  6. malzbie

    Bleib da doch stehen!

    Eine recht gute Möglichkeit ist, die Figur mit transform.parent zum Kind der Plattform zu machen, wenn sie sie die Plattform berührt, und das parenting wieder aufzuheben, sobald die Figur die Plattform verlässt. Wenn du deine Figur über die Physik bewegst, könte es etwas schwieriger werden, aber grundsätzlich geht das so ganz gut.
  7. malzbie

    Lonely World

    Ja. Ist zu dunkel. Das fällt besonders auf, wenn die Sonne aufgeht. Sobald man die Sonne sieht müsste es eigentlich schon taghell sein, aber bei dir ist da noch Morgenröte. Wenn es richtig Tag ist, sollte man die Seite der Hütte, auch wenn sie im Schatten liegt, viel heller sein. Denn nicht nur die Sonne leuchtet, sondern der ganze Himmel. Am besten, du gehst mal morgens raus und beobachtest die Lichtveränderung. Du wirst sehen, was ich meine. Aber ansonsten ist der Zyklus gut gemacht.
  8. malzbie

    Lonely World

    Nicht schlecht soweit. Ich persönlich finde aber, dass der Tag zu wenig Streulicht hat und dadurch alles viel zu dunkel ist. Obwohl die Sonne scheint, kommt es einen so vor, als wäre es vom Licht her total bewölkt.
  9. malzbie

    Kein Cylinder Collider?

    Er ist nicht unmöglich aber schwierig zu berechnen. Bei den vorgefertigten Collidern werden gewisse Algorythmen genutzt, die ein Kugel und eine Kapsel eben für die Physik ganz rund machen. Es gibt da also keine geraden Flächen, wie bei einem Polygonobjekt. Dadurch kann das Objekt richtig rollen. Bei einem Meshcollider ist man in der Anzahl der Flächen begrenzt. Man kann den Kollider also nicht unendlich fein machen und somit würde er eher hoppeln, anstatt zu rollen, weil eben Kanten vorhanden sind. Kleine Kanten können dazu führen, dass die Physik falsch rechnet und das Objekt ab einer gewissen Geschwindigkeit zu hüpfen anfängt, auch wenn die Kanten direkt aneinander liegen. Naja, das ist wohl das Problem. Rundungen sind machbar, Flächen, wie beim Quader auch. Aber die Kombination aus beidem scheint wohl schwieriger und kompliziert zu berechnen zu sein.
  10. malzbie

    Bei Bewegung leichtes "Kippen" simulieren

    Das soll also sofort passieren (natürlich weich, über eine kurze Zeit) und dann bei 5° stehen bleiben? Warum animierst du dann nicht einfach die Plattform? Du brauchst dafür nur 4 kleine Animationen. Je Richtung eine die von waagerecht nach leicht gekippt geht. Und das vielleicht über eine viertel Sekunde. Und dann natürlich für jede Richtung zurück von gekippt zu waagerecht. Du könntest dir die ganze Programmierung sparen und einfach den Animator für dich arbeiten lassen. Der müsste nur wissen, ob und welche Taste gerade gedrückt wurde. Das kannst du mit 2 Boolschen Steuervariablen machen. Eine für links und eine für rechts. Ist keine Taste gedrückt sind beide false. Ist eine Taste gedrückt wird die Variable für diese Richtung auf true gesetzt und die Andere auf false. Du hast einen Idle State, wo keine Animation abgespielt wird. In den beim Start des Spiels rein gesprungen wird. Von dort aus geht es zu den 2 Kippanimationen. In den Transitions stellst du ein dass die entsprechende Richtung true sein soll. Von der Kippanimation geht es zur Animation die die Plattform wieder waagerecht werden lässt, wenn die Richtungsvariable false ist. Ja und von dieser Rückstellanimation geht es einfach zum Idle sobald die Animation fertig ist. Nur so ne Idee.
  11. malzbie

    Kein Cylinder Collider?

    Seit 2010 sind 2 (oder sind es mit der 2018 sogar3?) Physics Updates gekommen. Das Erste hat die Performance mächtig erhöht und das Zweite hat viele Neuerungen in der Art und Weise der Kollisionserfassung gebracht. Aber es stimmt schon. Je einfacher der Collider ist umso performanter ist das Ganze. Und das ist natürlich immer so, nicht nur bei der Physik. Am besten macht man ein Textadventure wo man nur Enter drücken kann. Dann ist man auf der sicheren Seite! *Spaß* Man sollte aber trotzdem die Kirche im Dorf lassen. Wenn bei meinen Flippern die Kugeln über eine Drahtrampe rollen, dann berührt die Kugel 2-3 Meshcollider gleichzeitung. Und diese Collider sind wirklich aufwendig weil sie recht fein unterteilt sind und sich winden. Performancetechnisch passiert da kaum etwas. Unity könnte also ruhig bei einem Zylindergrundobjekt auch einen Zylindercollider anbieten. Sie bieten ja auch Echtzeitreflektionen in ihren Posteffekten an, die ein 100Faches an Performance kosten. (Ja, ich weiß. Das eine macht die Grafikkarte, das Andere macht der Prozessor, obwohl es die Grafikkarte machen sollte) Auf meinem Kalender steht jetzt 2019. Die Geräte, wie mein IPad1, die damals nicht so den schnellsten Prozessor hatten, bekommen überhaupt keine SW mehr, weil das Betriebssystem seit Jahren nicht mehr aktualisiert werden kann. Das IPad2 war schon "DOPPELT" so schnell wie das iPad1. Deswegen sind Physik Performanceaussagen von 2010 absolut nicht mehr relevant.
  12. malzbie

    Bei Bewegung leichtes "Kippen" simulieren

    Nee. Drehen tut man über rotation oder über eulerAngles nicht über position! https://docs.unity3d.com/ScriptReference/Transform-eulerAngles.html Und immer dran denken, du machst da kein Vector3 draus. Das ist ein Vector3 denn der Raum ist und bleibt 3-Dimensional! Wenn du die Spriteposition mit Vector2 bestückst, wird einfach nur die Z Achse außen vor gelassen. Die ändert man idR. auch nicht, da alles bei einem 2D Game auf einer Ebene abläuft. Um ein Sprite vor ein anderes Sprite zu bekommen ändert man auch nichts an der Z-Position (also der Tiefe im Raum) sondern an der Sortierung, die du im SpriteRenderer einstellst. Aber natürlich kann man die Sprites auch in der Tiefe arrangieren. Dann werden (wenn alle Sprites die gleiche Sortierung haben) die Spirtes, die näher an der Camera sind, vor den anderen gezeichnet. Das ist sinnvoll, wenn gewisse Objekte immer im Hintergrund bleiben sollen. https://docs.unity3d.com/Manual/class-SpriteRenderer.html Du hast doch anfänglich von einer leichten Drehung gesprochen. 60° sehe ich nicht mehr als leichte Drehung an! Was willst du denn machen?
  13. malzbie

    Kein Cylinder Collider?

    Das sind aber auch uralte Aussagen von 2010! Inzwischen arbeitet die Physik ganz anders und kann bestimmt auch super mit ZylinderCollidern umgehen. Sei's drum. Ein ZylinderCollider wäre auch nichts Anderes als ein MeshCollider.
  14. malzbie

    Kein Cylinder Collider?

    Du machst es dir aber auch schwer. Gib deinem Zylinder doch einfach einen Meshcollider und nimm den CapsuleCollider einfach weg. Ein Meshcollider hat die gleiche Form wie das Mesh.
×