Jump to content
Unity Insider Forum

Daykoo

Members
  • Content Count

    3
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Daykoo

  • Rank
    Newbie
  1. Danke für diese extrem gute Erklärung. Das erleichtert mir einiges und mein "Unity Verständnis" ist wieder einmal gewachsen. Das wird mir auf alle Fälle bei mehreren Situationen weiter helfen 😊
  2. Guten Tag an alle! Ich stehe vor folgendem Problem: Ich habe ein Script (Klassenwahl), das mehrere Variablen beinhaltet. public bool dieb_state = false; public bool krieger_state = false; public bool magier_state = false; Sobald in dieser Scene auf das jeweilige Objekt geklickt wird, soll der dazugehörige Status (_state) auf true gesetzt werden. public void OnMouseDown() { if (gameObject.tag == "Dieb") { krieger_state = true; SceneManager.LoadScene("Welt_01"); Debug.Log("Den Dieb berührt!"); } else if (gameObject.tag == "Krieger") { krieger_state = true; SceneManager.LoadScene("Welt_01"); Debug.Log("Den Krieger berührt!"); } else if (gameObject.tag == "Magier") { magier_state = true; SceneManager.LoadScene("Welt_01"); Debug.Log("Den Magier berührt!"); } else { } } Nun ist das zweite Script (CharSpawn) dran: Natürlich ist Variable deklariert um auf das Script (Klassenwahl) zugreifen zu können. public Klassenwahl state; Sobald die Scene gestartet wird, also bei void Start(), habe ich diesen Code: public Klassenwahl state; public GameObject krieger; public GameObject dieb; public GameObject magier; void Start() { if (state.dieb_state == true) { Instantiate(dieb, new Vector3(0, 1, 5), Quaternion.identity); } else if (state.krieger_state == true) { Instantiate(krieger, new Vector3(0, 1, 5), Quaternion.identity); } else if (state.dieb_state == true) { Instantiate(magier, new Vector3(0, 1, 5), Quaternion.identity); } else { } } Die jeweiligen Models sind im Editor hinzugefügt. Desweiteren sind beide Scripts in den Scenes vorhanden. Das erste auf den Charakteren und das zweite als EmptyGaOb in der Scene in der der Char "erscheinen" soll. Die Variable State beinhaltet ein GaOb mit dem Script Klassenwahl. Nur zur eigentlichen Frage: Warum werden die Modells nicht gespawnt? Ich bitte um Lösungsvorschläge. Schon einmal großen Dank im voraus Daykoo
  3. Hallo allerseits! Ich bin zurzeit dabei, ein kleines Kartenspiel zu entwickeln. Der erste Spieler soll mithilfe eines Würfels ausgelost werden. Heißt der Spieler mit der am höchsten gewürfelten Zahl beginnt. Ich habe also dran gesetzt und ein Script geschrieben. Dieses ist aber leider fehlerhaft jedoch komme ich nicht drauf. Zum Beispiel sollte Spieler eins die höchste Zahl gewürfelt haben und Spieler zwei die zweithöchste, wird ausgegeben, dass Spieler zwei anfangen darf (siehe Bild). Desweiteren werden öfters falsche "beginn abfragen" (siehe Script relativ weit unten) gemacht. Es muss also darauf geachtet werden, dass wenn zwei Spieler die gleiche Zahl gewürfelt haben (und diese Zahl auch die höchste aller gewürfelten ist), sie nochmal würfeln müssen. Ich denke ich habe einiges relativ umständlich (oder eben nicht richtig gemacht), deshalb bin ich froh um Lösungsvorschläge und sonstige Anregungen. Außerdem sind die verwendeten Graphiken in den Bildern nur für mein Test Projekt also nichts ausgereiftes aber aufgrund von Demonstrationen wichtig. Ich bitte um Hilfe und bedanke mich schon einmal im voraus. using UnityEngine; using UnityEngine.UI; public class ButtonClickWürfeln : MonoBehaviour { public GameObject ButtonWürfeln; public Text gewürfelteZahl; public Text sonstiges; public int i; public int würfelZahl; public int spielerEins; public int spielerZwei; public int spielerDrei; public int spielerVier; public int höchsteZahl; public void Start() { spielerEins = 0; spielerZwei = 0; spielerDrei = 0; spielerVier = 0; sonstiges.text = ("Spieler 1 muss würfeln"); } public void Button_OnClick() { if (spielerEins == 0) { sonstiges.text = ("Spieler 2 muss würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerEins = würfelZahl; Debug.Log("Spieler 1 hat eine " + spielerEins +" gewürfelt"); return; } if (spielerEins == würfelZahl) { sonstiges.text = ("Spieler 3 muss würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerZwei = würfelZahl; Debug.Log("Spieler 2 hat eine " + spielerZwei + " gewürfelt"); return; } if (spielerZwei == würfelZahl) { sonstiges.text = ("Spieler 4 muss würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerDrei = würfelZahl; Debug.Log("Spieler 3 hat eine " + spielerDrei + " gewürfelt"); return; } if (spielerDrei == würfelZahl) { würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerVier = würfelZahl; Debug.Log("Spieler 4 hat eine " + spielerVier + " gewürfelt"); } //abfrage höchste Zahl if (spielerEins >= spielerZwei & spielerEins >= spielerDrei & spielerEins >= spielerVier) { höchsteZahl = spielerEins; } if (spielerZwei >= spielerEins & spielerZwei >= spielerDrei & spielerZwei >= spielerVier) { höchsteZahl = spielerZwei; } if (spielerDrei >= spielerEins & spielerDrei >= spielerZwei & spielerDrei >= spielerVier) { höchsteZahl = spielerDrei; } if (spielerVier >= spielerEins & spielerVier >= spielerZwei & spielerVier >= spielerDrei) { höchsteZahl = spielerVier; } // abfrage ob Spieler gleichen ZahlenWert haben // spieler eins & zwei if (spielerEins == spielerZwei & spielerEins == höchsteZahl) { i = 1; for (int i = 1; i < 2; i++) { sonstiges.text = ("Spieler 1 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerEins = würfelZahl; Debug.Log("Spieler 1 hat eine " + spielerEins + " gewürfelt"); } if (spielerEins == würfelZahl) { sonstiges.text = ("Spieler 2 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerZwei = würfelZahl; Debug.Log("Spieler 2 hat eine " + spielerZwei + " gewürfelt"); } return; } //spieler eins & drei if (spielerEins == spielerDrei & spielerEins == höchsteZahl) { i = 1; for (int i = 1; i < 2; i++) { sonstiges.text = ("Spieler 1 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerEins = würfelZahl; Debug.Log("Spieler 1 hat eine " + spielerEins + " gewürfelt"); } if (spielerEins == würfelZahl) { sonstiges.text = ("Spieler 3 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerDrei = würfelZahl; Debug.Log("Spieler 3 hat eine " + spielerDrei + " gewürfelt"); } return; } //spieler eins & vier if (spielerEins == spielerVier & spielerEins == höchsteZahl) { i = 1; for (int i = 1; i < 2; i++) { sonstiges.text = ("Spieler 1 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerEins = würfelZahl; Debug.Log("Spieler 1 hat eine " + spielerEins + " gewürfelt"); } if (spielerEins == würfelZahl) { sonstiges.text = ("Spieler 4 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerVier = würfelZahl; Debug.Log("Spieler 4 hat eine " + spielerVier + " gewürfelt"); } return; } //spieler zwei & drei if (spielerZwei == spielerDrei & spielerZwei == höchsteZahl) { i = 1; for (int i = 1; i < 2; i++) { sonstiges.text = ("Spieler 2 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerZwei = würfelZahl; Debug.Log("Spieler 2 hat eine " + spielerZwei + " gewürfelt"); } if (spielerZwei == würfelZahl) { sonstiges.text = ("Spieler 3 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerDrei = würfelZahl; Debug.Log("Spieler 3 hat eine " + spielerDrei + " gewürfelt"); } return; } //spieler zwei & vier if (spielerZwei == spielerVier & spielerZwei == höchsteZahl) { i = 1; for (int i = 1; i < 2; i++) { sonstiges.text = ("Spieler 2 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerZwei = würfelZahl; Debug.Log("Spieler 2 hat eine " + spielerZwei + " gewürfelt"); } if (spielerZwei == würfelZahl) { sonstiges.text = ("Spieler 4 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerVier = würfelZahl; Debug.Log("Spieler 4 hat eine " + spielerVier + " gewürfelt"); } return; } //spieler drei & vier if (spielerDrei == spielerVier & spielerDrei == höchsteZahl) { i = 1; for (int i = 1; i < 2; i++) { sonstiges.text = ("Spieler 3 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerDrei = würfelZahl; Debug.Log("Spieler 3 hat gewürfelt eine " + spielerDrei + " gewürfelt"); } if (spielerDrei == würfelZahl) { sonstiges.text = ("Spieler 4 muss wieder Würfeln"); würfelZahl = Random.Range(1, 6); gewürfelteZahl.text = würfelZahl.ToString(); spielerVier = würfelZahl; Debug.Log("Spieler 4 hat eine " + spielerVier + " gewürfelt"); } return; } //beginn abfrage if (spielerEins > spielerZwei & spielerEins > spielerDrei & spielerEins > spielerVier) { sonstiges.text = ("Spieler eins darf anfangen"); spielerEins = 1; ButtonWürfeln.SetActive(false); } if (spielerZwei > spielerEins & spielerZwei > spielerDrei & spielerZwei > spielerVier) { sonstiges.text = ("Spieler zwei darf anfangen"); spielerZwei = 1; ButtonWürfeln.SetActive(false); } if (spielerDrei > spielerEins & spielerDrei > spielerZwei & spielerDrei > spielerVier) { sonstiges.text = ("Spieler Drei darf anfangen"); spielerDrei = 1; ButtonWürfeln.SetActive(false); } if (spielerVier > spielerEins & spielerVier > spielerZwei & spielerVier > spielerDrei) { sonstiges.text = ("Spieler Vier darf anfangen"); spielerVier = 1; ButtonWürfeln.SetActive(false); } } }
×
×
  • Create New...