In Unity Programmieren Fehler?
Hier ist ein Code von mir wo ich den Fehler einfach nicht finden Kann Unity sagt dazu:
Assets\PlayerMovement.cs(17,6): error CS1513: } expected
und All Compiler Errors have to be Fixed before you can start a game!
mein Code lautet:
using UnityEngine;
public class PlayerMovement : MonoBehaviour { public Rigidbody rb;
public float forwardForce = 2000f;
void FixedUpdate()
{
rb.AddForce(0, 0, forwardForce * Time.deltaTime);
if( Input.GetKey("d") )
{
rb.AddForce(500 * Time.deltaTime, 0 ,0);
}
}
3 Antworten
![](https://images.gutefrage.net/media/user/Knomle/1653236039619_nmmslarge__578_867_1611_1611_511d5261e563c0e6c59a552b5669e3f6.jpg?v=1653236040000)
Da fehlt eine geschweifte Klammer die die Klasse am Ende wieder schließt.
Ich habe mal richtig eingerückt.
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public Rigidbody rb;
public float forwardForce = 2000f;
void FixedUpdate()
{
rb.AddForce(0, 0, forwardForce * Time.deltaTime);
if(Input.GetKey("d"))
{
rb.AddForce(500 * Time.deltaTime, 0 ,0);
}
}
}
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/user/Knomle/1653236039619_nmmslarge__578_867_1611_1611_511d5261e563c0e6c59a552b5669e3f6.jpg?v=1653236040000)
Kein Thema :-)
Freut mich dass du C# lernst und dich mit Spiele-Programmierung beschäftigst. Die Unity Engine ist sehr einsteiger-freundlich. Viel Spaß und viel Erfolg! :D
![](https://images.gutefrage.net/media/user/ohwehohach/1484229011333_nmmslarge__192_3_203_203_916b80d33227bc2c78789585f46b3253.jpg?v=1484229011000)
Naja, wie die Fehlermeldung schon sagt: Es fehlt die abschließende geschweifte Klammer der Klassendefinition. Füge eine letzte Zeile ein, die eine geschweifte Klammer enthält und gut.
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Äh, danke aber ganz verstehe ich das nicht da ich mir das gerade durch Tuto´s beibringe D:
![](https://images.gutefrage.net/media/user/ohwehohach/1484229011333_nmmslarge__192_3_203_203_916b80d33227bc2c78789585f46b3253.jpg?v=1484229011000)
Was gibt's da nicht zu verstehen? In der Zeile
public class PlayerMovement : MonoBehaviour {
steht eine öffnende geschweifte Klammer. Diese beginnt den Block, in welchem die Member der Klasse (Variablen, Methoden, etc.) definiert werden.
Und wo eine öffnende Klammer ist, muss irgendwann auch eine abschließende Klammer kommen. Bei Dir eben nach der Methode FixedUpdate.
Ein Block (egal, was er enthält) besteht immer aus einer öffnenden und einer schließenden geschweiften Klammer.
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
oh d: ist mir trotz fehlermeldung gar net aufgefallen xD Danke
![](https://images.gutefrage.net/media/default/user/6_nmmslarge.png?v=1438863662000)
Ich nehme an du hast da kopiert ohne irgendwas zu verstehen?
Du hat halt, zumindest wenn da kein Code fehlt, einfach keine schließende Klammer bei der Klasse.
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/default/user/6_nmmslarge.png?v=1438863662000)
Naja, dann müsste es ja sofort ins Auge Stechen dass der Block nicht geschlossen wird. Der Fehler ist ja auch mehr als eindeutig.
Danke D: