Jump to content
Unity Insider Forum

Eine SprungPlattform in Unity erstellen


Mkey
 Share

Recommended Posts

Hallo,

Ich arbeite gerade an einem 1st Person 3D Jump n Run Spiel. Ein Level aus gewöhnlichen würfeln hab ich schon zusammengestellt. Aber gerade wollte ich so etwas wie Einen Slime block in Minecraft erstellen. Also wenn der Player (der btw. hauptsächlich aus der First Person Vorlage von UNity kommt)diese Plattform berührt soll er hochkatapultiert werden.Und Ich habs letztens mit nem Physics Material versucht... Ich habe schon vieles Probiert und gesucht. Geklappt hat es allerdings nie... Anbei ein Paar Dateien : Die SprungPlattform, dessen Script, der Player... (hab nicht viel Erfahrung. Also bitte nicht schlagen)

player.png

JUmpblock.png

script.png

Link to comment
Share on other sites

Ich verstehe nicht so ganz, warum du das mit Material lösen willst.

 

Ich nehme eine Plane und einen Player. Beide bringen einen Collider mit.

Der Player bekommt einen Ridgidbody und den Tag Player.

Die Plane bekommt das Script

...

private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.CompareTag("Player"))
        {
            Rigidbody rB = collision.gameObject.GetComponent<Rigidbody>();
            rB.AddForce(Vector3.up * 5, ForceMode.Impulse);
        }
     }

WEnn ich das Spiel starte, hüpft der Player auf der Plane auf und ab

Link to comment
Share on other sites

Also das Problem ist,dass der player nur einen Rigidbody script hat. Und wenn ich noch denn Standart-unity-Rigidbody hinzufüge kann men den Player nicht maehr normal steuern. Funktioniert, das denn auch mit dem Script-Rigidbody?

Link to comment
Share on other sites

Was ist denn ein Script-Rigidbody?

Ich kenne das tatsächlich nur so, dass das Player-GameObject eine Componente Rigidbidy bekommt. Wenn ich dann diese Componente ansprechen will hole ich sie mir mit GetConponent<Rigidbody>().

Steuerst Du deinen Player durch Änderung der Positionswerte, oder durch AddForce?

Link to comment
Share on other sites

Hmm... Du musst dich noch ein wenig einlesen.
Es ist alles nicht so einfach, wie man zuerst denkt.

Ich will mal ein paar Dinge erklären:
Unity hat eine Physik Engine, die hauptsächlich mit Collidern, Triggern, Raycasts und vorallem dem Rigidbody funktioniert. Der Rigidbody ist die Komponente, die einen Collider bewegen kann, mit anderen Collidern kollidiert, Trigger auslöst und alle Kräfte ( Reibung, Federung, Masse, Beschleunigung im Raum) erst ermöglicht.

Der Character Controller (kurz CC) ist "kein" Bestandteil dieser Physik. Er macht zwar ähnliche Dinge, die Auswertung der Kräfte erfolgt aber ganz anders und ist auch unvollständig.
Trotzdem kann der CC auch mit Collidern zusammenstoßen und Triggerevents auslösen. Er kann auch springen. Er kann aber nicht von irgendeinem Kollider abgestoßen werden, nur weil dieser Collider ein Gummimaterial hat. Es gibt eine Möglichkeit um mit einem CC auch von einem RB abgestoßen zu werden. Dafür musst du eine gewisse Option aktivieren:
https://docs.unity3d.com/Packages/com.unity.charactercontroller@1.0/manual/dynamic-body-interaction.html?q=physical material

Wie gut das funktioniert kann ich nicht sagen. Aber im Text steht ja schon, dass es zu einem kleinen Lag kommen kann. Ob die Eigenschaften eines physikalischen Materials richtig ausgewertet werden, weiss ich nicht.
Übrigens: selbst wenn ein Collider kein phys. Material zugewisen bekommen hat, so hat er doch default Eigenschaften.

Einen CC mit einem Rigidbody zu kombinieren, ist meines Wissens keine gute Lösung, weil dann 2 Dinge verknüpft werden, die sich gegenseitig stören.
Ich muss aber gestehen, dass ich im Bezug auf den CC nicht mehr auf dem neuesten Stand bin.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...