Wie kann ich den Spieler zu etwas zwingen im Script c#?

5 Antworten

Zähle die Schläge in einem Feld mit. Das canChopDown-Feld benötigst du hingegen nicht. Stattdessen müsstest du an der Stelle prüfen, ob die benötigte Anzahl an Schlägen bereits erreicht wurde.

Die Prüfung würde ich im Übrigen außerhalb der CutDown-Methode durchführen. Von CutDown würde ich erwarten, dass entweder die erwartete Funktion in jedem Fall erledigt wird oder zumindest eine Rückmeldung kommt, wenn es nicht geklappt hat.

Erstelle eine Variable und zähle sie hoch, anstatt CutDown aufzurufen. Wenn sie dann fünf erreicht hat, rufe CutDown auf. Das könnte dann so aussehen:

//Außerhalb der Update-Methode:
int num = 0;
//in der Update-Methode:
if(hit.transform.tag == "tree") {
  num++;
  Debug.Log("You clicked on a tree!");
  if(num >= 5) {
      CutDown();
  }
}

Das "CanChopDown" kannst du entfernen.

Mysterymenn 
Fragesteller
 15.04.2020, 00:12

Es funktioniert jetzt beim ersten Baum aber wenn ich ihn abbaue und ein neuer gespawnt wird kann ich ihn wieder mit einem Schlag kaputt machen.

0
LuXaZ  15.04.2020, 01:46
@Mysterymenn

Du musst die num-variable jedes mal wieder auf 0 setzen. Wenn du allerdings mehrere Bäume hast, musst du jedem Baum einen einzelnen Zählwert zuweisen. Das erreichst du, indem du ein Prefab von dem Baum machst und dann die Zählfunktion in das Script von dem Baum einbaust. Diesen wert kannst du dann in deinem player script ändern mit:

BaumPrefab.GetComponent<ScriptName>().num += 1;

"BaumPrefab" und "ScriptName" musst du jeweils an dein Script anpassen. Zu beachten ist, dass der Zählwert public sein muss.

1

Erstell einfach einen Counter und sobald der Counter 5 erreicht hat wird die Methode CutDown() aufgerufen.

Bau einen Zähler ein, der hoch zählt immer wenn auf den Baum geklickt wurde. Ist der dann 5, rufst du erst "CutDown()" auf

Woher ich das weiß:Berufserfahrung – Anwendungsentwickler (vorwiegend .NET)

Ich würde dir dazu raten dich erstmal mit C# zu beschäftigen. Das ist eine ziemlich einfache Geschichte. Dir fehlen wohl ziemlich viele Grundlagen - das musst du dringen aufarbeiten.

Woher ich das weiß:Studium / Ausbildung – Informatikstudium