[C# und Unity] Fragenthread

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [C# und Unity] Fragenthread

      Hallo,

      Ich beschäftige mich seit ein paar Tagen damit ein kleines Spiel zu programmieren.

      Wollte nun aber ne simple Taschenlampe einbauen, aber dieses funktioniert nicht..

      Sie kann zwar ausgeschaltet werden (mit B), aber nicht eingeschaltet werden (ebenfalls mit B).

      Kode:

      LUA-Quellcode

      1. using UnityEngine;
      2. using System.Collections;
      3. public class lamp : MonoBehaviour {
      4. public bool can = false;
      5. void Update () {
      6. if (Input.GetKey(KeyCode.B))
      7. {
      8. if (can = false)
      9. {
      10. can = true;
      11. light.enabled=true;
      12. }
      13. else if (can = true)
      14. {
      15. can = false;
      16. light.enabled=false;
      17. }
      18. }
      19. }
      20. }
      Alles anzeigen


      Mfg KeksKing
      Exetra-Play = mtasa://5.62.64.218:22003
      Discord: KeksKing#9206

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von KeksKing ()

    • Probiere es mal so:

      LUA-Quellcode

      1. using UnityEngine;
      2. using System.Collections;
      3. public bool can = false;
      4. public class lamp : MonoBehaviour
      5. {
      6. void Update()
      7. {
      8. if(Input.GetKey(KeyCode.B))
      9. {
      10. if(can)
      11. {
      12. can = false;
      13. light.enabled = false;
      14. }
      15. else
      16. {
      17. can = true;
      18. light.enabled = true;
      19. }
      20. }
      21. }
      22. }
      Alles anzeigen
      Verkaufe Scripts
      Thema oder per PM

      >> YouTube <<

      Ein letztes mal will ich mich in deinen Augen verlieren.
    • Kurz noch wodran es lag:

      Der Ausdruck

      LUA-Quellcode

      1. if (can = false)

      vergleicht nicht "can" mit false, sondern setzt can auf false und prüft dann ob can wahr ist. Da es aber davor auf false gesetzt wurde, wird dein erster Zweig nie ausgeführt.

      Zum Vergleichen von Dingen immer den == Operator nutzen, der prüft auf Gleichheit.

      x = y -> Setze x auf y und gebe x zurück.
      x == y -> Gebe zurück ob x gleich y ist.
      Mich per PN bezüglich Freischaltungen zu nerven ist der beste Weg eine Freischaltung zu verhindern.

      neon-gaming.de
    • So, danke für eure Antworten :)!

      Wollte mir nun mein erstes Schwert erstellen, also nen Modell heruntergeladen und ne Animation zusammengeschustert..
      Wollte aber, dass beim benutzen des Schwertes ein Sound zu hören ist..

      Hab´ ihn dem Schwert zugewiesen und sound.Play() ins Script eingefügt. (Der Sound wurde richtig ans Schwert "angebracht", habe es bei nem Versuch mit meiner Taschenlampe genauso getan!)

      Nur wird dieser Sound beim starten des Spieles kurz abgespielt und dann nicht mehr..

      Script:

      LUA-Quellcode

      1. using UnityEngine;
      2. using System.Collections;
      3. public class sword : MonoBehaviour {
      4. void Update ()
      5. {
      6. Screen.showCursor = false;
      7. Screen.lockCursor = true;
      8. if (Input.GetMouseButtonDown (0))
      9. animation.Play ("swordattack");
      10. audio.Play ();
      11. }
      12. }
      Alles anzeigen
      Exetra-Play = mtasa://5.62.64.218:22003
      Discord: KeksKing#9206
    • Also ich kenn mich jetzt kaum mit C# und erst recht nicht mit Unity aus. Was ich mir aber denken könnte ist, dass bei "audio.Play()" der Parameter fehlt welcher Sound abgespielt werden soll, oder?

      Hier wird ja ein Parameter übergeben:

      LUA-Quellcode

      1. animation.Play ("swordattack")


      Wenn die Audioklasse genauso aufgebaut ist, könnte hier der Parameter fehlen:

      LUA-Quellcode

      1. audio.Play (???);



      Ansonsten brauchen wir wohl mehr Code, zum Beispiel wo und wie du den Sound deklariert hast.

      Viele Grüße,
      [email protected]

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von [email protected] ()

    • Mit dem Schwert habe ich es nun hinbekommen,

      aber ich bekomme es nicht hin, auf eine Variable zuzugreifen die in einem anderen Script ist..

      LUA-Quellcode

      1. public int Wert = lampetasche.Batterie;


      Habe es bisher so versucht funktionierte aber nicht.

      Die Variable in der anderen Datei sieht so aus:

      LUA-Quellcode

      1. public int Batterie = 100;


      Diese Funktion sollte den Wert aus der anderem Datei verändern:

      LUA-Quellcode

      1. void OnMouseDown()
      2. {
      3. Wert = Wert + 20;
      4. Debug.Log ("Geil!");
      5. }
      Exetra-Play = mtasa://5.62.64.218:22003
      Discord: KeksKing#9206
    • Danke, funktioniert so :D!

      Hätte da noch ne Frage:

      Hab beim Script meiner "KI" das Problem, dass wenn ich nen Hügel herunter spaziere , dass der Gegner der mit halt folgt anfängt zu fliegen da seine Y Koordinate sich nicht dem Gelände anpasst... Wie könnte ich dies verhindern?
      Exetra-Play = mtasa://5.62.64.218:22003
      Discord: KeksKing#9206
    • Hallo,

      LUA-Quellcode

      1. void OnMouseDown()
      2. {
      3. Destroy (this.gameObject);
      4. float x1 = lampetasche.Batterie;
      5. x1 = x1 + 20;
      6. Debug.Log (x1);
      7. }


      In dem Script soll der Variable "Batterie" (aus dem Script lampetasche, also halt eine Variable aus nem anderen Script) 20 dazugerechnet werden.

      Ich habe 2 Batterien im Level, aber es wird halt nur einmal 20 dazu gerechnet.

      Habe gerade echt keine Ahnung wie ich dieses lästige Problem lösen soll.
      Exetra-Play = mtasa://5.62.64.218:22003
      Discord: KeksKing#9206