Ich arbeite gerade an einem Spiel in Unity und kann nichts erledigen. Ich will es so, dass, wenn die Eingabe x Mal gedrückt wird (Ein Nahkampfangriff), der Charakter stoppt, bis Du einen weiteren Knopf x-mal drückst, d. H. 10 mal. Der Spieler sollte in der Lage sein, dreimal zu attackieren, aber wenn er dies tut, tritt der Charakter in einen Zustand des "falschen Todes" ein, in dem er nicht mehr in der Lage ist, mit dem Spieler zu gehen oder einen Nahkampfangriff auszuführen. Zu diesem Zeitpunkt sollte der Spieler 10 Mal einen anderen Schlüssel treffen und dann kann der Spieler wieder im Nahkampfangriff gehen. Ich dachte, ich könnte das mit einer einfachen if-and-else-Anweisung realisieren, habe es aber bisher nicht geschafft. Aus irgendeinem Grund wird mein anderer Teil sofort ausgeführt, anstatt 5 Mal den Nahkampfangriff auszuführen.Wenn die Eingabe x mal gedrückt wird, mache etwas.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MeleeCounter : MonoBehaviour {
public int attackNumber = 0;
public GameObject meleeHitbox;
// Update is called once per frame
void Update() {
if (attackNumber < 5 && Input.GetButtonDown ("Fire3"))
{
attackNumber++; // increment the counter
meleeHitbox.gameObject.SetActive (true);
Debug.Log ("Attack");
}
if (Input.GetButtonUp ("Fire3")) {
meleeHitbox.gameObject.SetActive (false);
}
else
{
GetComponent<PlayerController>().enabled = false;
Debug.Log ("Too many attacks");
// Here should come a script that if i.e. Fire4 is pressed 10 times reset attackNumer to 0; and set PlayerController to true.
}
}
}