Hey hab ein Unity script ich will das mein gegner alle 5 sekunden einmal schießt leider schießt er nach 5 sekunden nur noch die ganze zeit kann mir bitte jeman?

Bild - (Computer, programmieren, Unity)

3 Antworten

Zu aller  erst ,  einfach toll  wenn  jemand  ein Bild  mit Code  postet.
Als  gäbe   es es  nicht Pastbin & co.
Wenn   die Variable zuLetztSchadenBekommen  immer 0 ist macht  es  auch  keinen Sinn sie  beim  Vergleich  heranzuziehen.
ergo  würde   reichen (....time.time >= 5)

zuLetztSchadenBekommen = Time.time

....ist  auch  keine  Lösung . Auch wenn in ein float eine Menge  reinpasst, irgendwann  läuft  die  variable  über.

Stattdessen  müsste   Timer.time  zurück   auf  0 gesetzt  werden.

Genau  desshalb  finde  ich  Codefotos  Mist . Wie  soll  man  den Fehler  finden oder  Fixen wenn man durchs Schlüsselloch  schaut :(

hab mittlerweile alles versucht aber wie addiere ich das dazu? oder wie
resetter ich es habbe den zuletztschadenbekommen den wert 5 gegebn also
public int zuletztschadenbekommen = 5;

0
@Kevinsteineet

Du  weißt  nicht  wie  man Variablen  in C# addiert?
Ich  habe  ja  bereits  geschrieben das die  Variable zuLetztSchadenBekommen  überhaupt   keinen Sinn macht.

Auch  das  sie  vom Typ float ist, wenn doch (wie  ich annehme)  Time.time ein Integer oder word/dword ist,  mach  die die Sache  irgendwie  seltsam.

Wenn Du
zuLetztSchadenBekommen auf  5 deklarierst erreicht  Du  nur  das  der Gegner Nach 10Sekunden schießt (5+5). 

Du  musst inerhalb  deines If-Blocks Time.time=0 setzen.
so das  der Timer  vom  neuen bis 5 hochzählt. bzw.
zuLetztSchadenBekommen=Time.time (das  ist  jedoch  unsauber, da nach 32767 Sekunden die  Variable überläuft.)

Du  hast  das  Ding  doch programmiert  und  solltest  am  besten wissen wo  und  wie der  Timer  declariert  ist,  ich  sehe  das  nicht  auf  deinem Bild.

Das  nächste  mal schicke  kein  Bild.  Wenn Du  Dir  nicht die Mühe  machst  den Code auf Pastebin oder   hier  im Editor  zu posten  , sehe  ich  garnicht ein,   warum ich den Code  von einem Bild abtippen sollte.

Da  bin  ich etwas  empfindlich....

0

Die letzte Zeit musst du immer aufaddieren damit +5 auch das nächste mal 5 sek dauert, sonst schiesst es dauernd nach den 1. Fünf Sek.

zuLetztSchadenBekommen = Time.time

hab mittlerweile alles versucht aber wie addiere ich das dazu? oder wie resetter ich es habbe den zuletztschadenbekommen den wert 5 gegebn also public int zuletztschadenbekommen = 5;

0

Du solltest dein "zuLetztSchadenBekommen" mit einem Wert belegen und diesen auch bearbeiten, d.h. nach dem Schuss wieder zurücksetzen.

hab mittlerweile alles versucht aber wie addiere ich das dazu? oder wie
resetter ich es habbe den zuletztschadenbekommen den wert 5 gegebn also
public int zuletztschadenbekommen = 5;

0

Wie macht man in Unity einen Highscore Counter mit C#?

Ich brauche ein ganz einfaches Script wo die Highscores gespeichert werden (2-3) die auch geupdated werden wenn die score (integer) höher ist als die Highscore. Danke

  • Dan6erbond
...zur Frage

Unity - Jumpscare Script gesucht?

Ich bin auf der Suche nach einem Jumpscare Script, welches komatibel mit Unity ist, kennt ihr eines? 2D oder 3D Script ist egal.

...zur Frage

Warum schießt nur einer der Zauberer in meinem Unity Spiel?

Ich hab ein Script geschrieben dass meinen Zauberer alle 3 Sekunden eine Kugel schießen lässt:

{
  static bool shoot;

  Vector2 bulletPos;

  public GameObject zaubererBullet;

  private static IEnumerator BulletShoot()
  {
    while (true)
    {
      yield return new WaitForSeconds(3.0f);
      shoot = true;
    }
  }

  private void Start()
  {
    StartCoroutine(BulletShoot());
  }

  private void Update()
  {
    bulletPos = transform.position;

    if (shoot == true)
    {
      bulletPos += new Vector2(-1f, -1f);
      Instantiate(zaubererBullet, bulletPos, Quaternion.identity);
      shoot = false;
    }
  }
}

Auf der Kugel ist dieses Script:

{
  public float speed = 5f;

  float velY = 0f;

  Rigidbody2D rb;

  private void OnTriggerEnter2D(Collider2D collision)
  {
    if (collision.CompareTag("Player"))
    {
      RedScreenScript.dead = true;
    }
  }

  void Start ()
  {
    rb = GetComponent<Rigidbody2D>();
  }

  void Update ()
  {
    rb.velocity = new Vector2(speed, velY);
    Destroy(gameObject, 5f);
  }
}

Wenn ich jetzt mehrere Zauberer in meiner Scene habe, schießt immer nur einer und die anderen machen nichts. Warum?

...zur Frage

Wie kann ich in Unity per Script handgemachte Räume hintereinander platzieren per Zufallsgenerator?

Ich will in Unity mehrere handgemachte räume hintereinander platzieren per Zufallsgenerator, Ähnlich wie in Spooky's Jump Scare Mansion. Durch Interaktion mit Türen wird das getriggert. Ich habe alle scripts fertig bis auf denn Level-Generator.

...zur Frage

Kann man auch mit java oder nurit java script auf unity programmieren?

...zur Frage

Wie/wo lernt man C# Begriffe?

Ich habe mir als Ziel gesetzt, ein Spiel in Unity zu entwickeln. Mit dem Modellieren und der Engine an sich komme ich relativ gut klar, nur vom programmieren bin ich noch sehr verwirrt. Beispielsweise sehe ich viele C# Tutorials die classes, booleans usw erklären, wenn ich mir aber später Unity Programmier Tutorials anschaue fallen aufeinmal Begriffe wie "Transform" oder noch spezifischer "smoothSpeed" (Kamerasteuerung) usw... Ich frage mich da; woher kommen diese Begriffe? Gibt es da irgendwo eine Liste? Ich verstehe das alles irgendwise nicht :/

...zur Frage

Was möchtest Du wissen?