Unity "Die lokale Funktion "BS" ist deklariert, wird aber nie verwendet."?

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?

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops

Tjovo 
Fragesteller
 07.08.2021, 08:20

Jap. Habe es gerade an geschaut.

0
Tjovo 
Fragesteller
 07.08.2021, 08:37

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.

0

Die Funktion wird nie abgerufen, sollte kein Problem sein aber ist halt code der unnötig drin steht.


Tjovo 
Fragesteller
 06.08.2021, 17:56

Aber die Nachricht wird doch gesendet.

0
Tjovo 
Fragesteller
 06.08.2021, 17:58
@asdfkeinplan

Doch:

ObjectSaveObject.SendMessage("BS");

0
asdfkeinplan  06.08.2021, 18:00
@Tjovo

Ich bin ein bisschen eingerostet in C#, aber ich bin mir fast sicher, dass "BS" ein String und kein Methodenabruf ist.

0
Tjovo 
Fragesteller
 06.08.2021, 18:02
@asdfkeinplan

Bei SendMessage Dingern ist tut man einen string senden, der dann sozusagen in eine Void Methode "konvertiert" wird.

0
asdfkeinplan  06.08.2021, 18:03
@Tjovo

Dann kannst die Warnung ignorieren, die IDE sieht nur, dass nirgends "BS();" steht und denkt deshalb, dass es unnötiger Code ist.

0
asdfkeinplan  06.08.2021, 18:04
@Tjovo

Aber das hängt nicht damit zusammen, dass die Methode nicht verwendet wird, deshalb ist die Warnung, dass die Methode nicht verwendet wird egal.

0
Tjovo 
Fragesteller
 06.08.2021, 18:05
@asdfkeinplan

Ich schicke dir mal ein Video vom Problem...

0
BeamerBen  06.08.2021, 20:03
@asdfkeinplan

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.

0
Tjovo 
Fragesteller
 07.08.2021, 08:38

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.

1