Unity "Die lokale Funktion "BS" ist deklariert, wird aber nie verwendet."?
Hi! Das ist mein Code:
void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.name == "Spieler")
{
ObjectSaveObject.SendMessage("BS");
}
}
und:
void BS()
{
BGS = true;
}
(Für was "BS" und "BGS" stehen muss man nicht wissen).
Also, die Variable "ObjectSaveObject" ist auf das Objekt gesetzt worden. Die Nachricht wird gesendet (Sieht man hier dran:
)
Aber in Visual Studio steht das da:
Warum? Was meinen die damit? In der Funktion steht das wat drin! Kann mir jemand erklären, was Visual Studio damit meint? Grüße, Tjovo.
3 Antworten
Bist du dir sicher, dass du A das richtige Objekt hast und auf dem auch das korrekte Script ist und B der BS in der richtigen Stelle deklariert ist?
Ich habe jetzt eine Lösung gefunden:
Anstatt
ObjectSaveObject.SendMessage("BS");
Ist es jetzt:
ObjectSaveObject.GetComponent<ObjectSaveScript>().BGS = true;
Jetzt muss er keine Nachricht senden.
Die Funktion wird nie abgerufen, sollte kein Problem sein aber ist halt code der unnötig drin steht.
Ich habe jetzt eine Lösung gefunden:
Anstatt
ObjectSaveObject.SendMessage("BS");
Ist es jetzt:
ObjectSaveObject.GetComponent<ObjectSaveScript>().BGS = true;
Jetzt muss er keine Nachricht senden.
Laut visual studio hast du nirgends "BS();" stehen. https://www.duden.de/rechtschreibung/verwenden
Ich bin ein bisschen eingerostet in C#, aber ich bin mir fast sicher, dass "BS" ein String und kein Methodenabruf ist.
Bei SendMessage Dingern ist tut man einen string senden, der dann sozusagen in eine Void Methode "konvertiert" wird.
Dann kannst die Warnung ignorieren, die IDE sieht nur, dass nirgends "BS();" steht und denkt deshalb, dass es unnötiger Code ist.
Aber das hängt nicht damit zusammen, dass die Methode nicht verwendet wird, deshalb ist die Warnung, dass die Methode nicht verwendet wird egal.
Ich schicke dir mal ein Video vom Problem...
sendMessage gehört zu Unity und ist wie eine Art Event das alle gleichnamigen Methoden aufruft. Das hat nichts mit C# an sich zu tun.
Aber die Nachricht wird doch gesendet.