Skalidor Geschrieben 23. Februar 2023 Melden Share Geschrieben 23. Februar 2023 Hallo! Ich programmeire derzeit ein 3D Spiel in Unity. Wie ich einen Ball erstellt habe und ein Movement Script dafür geschrieben habe, habe ich bemerkt, dass mein Ball rutscht. Seitdem ich dieses Script meinen Ball hinzugefügt habe, fällt er auch die ganze Zeit sehr schnell von der Plattform. using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; public class Movementnew : MonoBehaviour { Rigidbody ri; Transform playerTrans; public float speed; public float g; float gravity = 0; public Transform groundtest; public LayerMask ground; public bool grounded; // Start is called before the first frame update void Start() { ri = GetComponent<Rigidbody>(); playerTrans = GetComponent<Transform>(); } // Update is called once per frame void Update() { Collider[] colls = Physics.OverlapSphere(groundtest.position, 0.5f, ground); grounded = colls.Length > 0 ? true : false; if (!grounded) { playerTrans.position -= new Vector3(0f, gravity, 0f) * Time.deltaTime; gravity += g; } else { gravity = 0f; } float horizontal = Input.GetAxisRaw("Horizontal"); float vertical = Input.GetAxisRaw("Vertical"); if (vertical > 0) ri.AddForce(playerTrans.forward * 5f, ForceMode.Force); else if (vertical < 0) ri.AddForce(playerTrans.forward * -5f, ForceMode.Force); if (horizontal > 0) ri.AddForce(playerTrans.right * 5f, ForceMode.Force); else if (horizontal < 0) ri.AddForce(playerTrans.right * -5f, ForceMode.Force); /* Vector3 dir = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); ri.velocity = Vector3.zero; ri.AddRelativeForce(dir * speed, ForceMode.Force); */ } } Diesen Code benutze ich. Danke im Vorhinein. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Lightstorm Geschrieben 23. Februar 2023 Melden Share Geschrieben 23. Februar 2023 Hast du überprüft, ob der else Block mit gravity = 0f wirklich ausgeführt wird, wenn der Ball den Boden berührt? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 23. Februar 2023 Melden Share Geschrieben 23. Februar 2023 Ich weiß gerade nicht, warum du "rutscht"... oder was das überhaupt genau heißen soll... aber warum verschiebst du selber über Transform dein Objekt, wenn da ein Rigidbody drauf ist? Das Ding kann ganz alleine runterfallen. Und wenn du eine Beschleunigung haben willst, hast du doch genau dafür AddForce? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.