Shalafi Geschrieben 20. Juni 2018 Melden Share Geschrieben 20. Juni 2018 Hi, ich schreibe in C# Skript um eine Granate zu werfen: public class ThrowGranade : MonoBehaviour { public GameObject GrenadePrefab; private Transform MyTransform; private GameObject GrenadeObj; public float ThrowForce = 30f; // Use this for initialization void Start() { this.MyTransform = this.transform; } // Update is called once per frame void Update() { if (Input.GetButtonDown("ThrowGrenade")) { this.InstantiateGrenade(); } else if (Input.GetButtonUp("ThrowGrenade")) { this.ThrowGrenade(); } } private void InstantiateGrenade() { if (this.GrenadePrefab != null && this.GrenadeObj == null) { this.GrenadeObj = (GameObject)Instantiate(this.GrenadePrefab, this.MyTransform.TransformPoint(0, .1f, .6f), this.MyTransform.rotation); this.GrenadeObj.transform.SetParent(this.transform.parent.parent); } } private void ThrowGrenade() { if (this.GrenadeObj != null) { this.GrenadeObj.GetComponent<Rigidbody>().useGravity = true; this.GrenadeObj.GetComponent<Rigidbody>().isKinematic = true; this.GrenadeObj.GetComponent<Rigidbody>().AddForce(this.MyTransform.forward * this.ThrowForce, ForceMode.Impulse); } } } Leider funktioniert das AddForce() in der letzten Zeile nicht. Ich hab auch bei Google nichts richtiges gefunden. Kann mir jemand weiterhelfen? Gruß Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 21. Juni 2018 Melden Share Geschrieben 21. Juni 2018 Du hast in der vorletzten Zeile den RB auf Kinematic gestellt. Wenn du das machst, dann ist er mit AddForce und Velocity nicht mehr bewegbar. Warum stellst du den denn auf Kinematic? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Shalafi Geschrieben 21. Juni 2018 Autor Melden Share Geschrieben 21. Juni 2018 Hi, ok, hab ich gemacht. Wenn ich jetzt die Taste loslasse, verschwindet die Granate einfach. Im Inspector bewegt sich die Granate weiter wie verrückt (Position + Rotation). Eigendlich hat das Granaten-Prefab nen Capsule-Collider. Eigendlich sollte sie doch dann auf dem Boden, bzw an Wänden abprallen. PS: Die Granate hat ne Mass von 10, dass die Granate zu schnell fliegt um sie zu sehn, sollte es nicht sein... Gruß Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 21. Juni 2018 Melden Share Geschrieben 21. Juni 2018 Da wo du die Granate instanzierst ist auch kein Collider? Wenn du nämlich innerhalb eines anderen Colliders instanzierst, greift sofort die Physik und wird die Granate aus dem Collider drängen. Das kann schon heftig sein. Ich empfehle dir einfach mal in einer leeren Szene die Granate irgendwo zu instanzieren und ihr die Force zu geben. Dafür machste dir ein ganz einfaches Script, wo du eine Taste abfragst und ein fach an der Position 0,0,0 die Granate instanzierst. Du erst Mal lernen wie sich die Werte auswirken. Eine Masse von 10 bedeutet übrigens dass deine Granate 10kg schwer ist! Denk daran, dass uniy das metrische System nutzt. Eine Masse von 1 ist 1kg. Eine Größe oder Länge von 1 ist exakt ein Meter. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Shalafi Geschrieben 21. Juni 2018 Autor Melden Share Geschrieben 21. Juni 2018 Hi, mein Spieler-Model besteht aktuell nur aus einer Capsule und 2 Cubes als Arme. Die Arme haben keinen Collider. Daran kann es eigendlich auch nich liegen .... Gruß Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Shalafi Geschrieben 21. Juni 2018 Autor Melden Share Geschrieben 21. Juni 2018 Hi, scheinbar hat ein this.GrenadeObj.transform.SetParent(null); this.GrenadeObj.transform.SetParent(null); das Problem gelöst. Kann mir das jemand erklären? Gruß Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Shalafi Geschrieben 21. Juni 2018 Autor Melden Share Geschrieben 21. Juni 2018 Hi, das Problem ist jetzt, dass sobald ich das Parent auf null setzte, die Granate an eine andere Position gesetzt wird. Kann man das verhindern? Gruß 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.