Jump to content
Unity Insider Forum

Blubbi

Members
  • Content Count

    5
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Blubbi

  • Rank
    Newbie

Recent Profile Visitors

196 profile views
  • Jog

  1. @Sascha Danke für die Mühe die du dir da gemacht hast. Bin momentan etwas im Stress gewesen um zu antworten. Bei dein Code ist vieles neues dabei. Da werde ich mich am Wochenend mehr befassen. Dank noch ein mal 😀
  2. Hallo zusammen, ich benötige Hilfe mit meiner If abfrage. Erst ein mal die Erklärung. Geplant ist eine Wichtelapp. der Aufbau besteht aus 6 Buttons je ein Butten für eine Person. z.b. Mama Papa Bruder Schwester... Wenn man auf ein Butten klickt, setzt er den Benutzer und sein Partner auf True. z.b. Butten eins = Papa und der Partner ist Mama. danach fragt er eine Zufalls zahl ab von 1 bis 6 das sind die Personen. Nach der Prüfung prüft er ob man sich selber nicht zieht oder sein Partner und wiederholt sich. bis jemand gezogen wird der noch nicht gezogen wurde der Partner oder er selbst ist. Das Programm funktioniert schon mal fast richtig. Aber Trotzdem kann man sein Partner ziehen. Anbei einmal das Script vielleicht habt ihr da eine Idee oder ich habe ein Logik Fehler drin. für Hilfe werde ich mich freuen. Kurz noch die Partner Karl und Manu Lena und Patrick Nina und Sven using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class zuende : MonoBehaviour { public GameObject button1; public GameObject button2; public GameObject button3; public GameObject button4; public GameObject button5; public GameObject button6; public GameObject anzeige; //Anzeige Menü wenn man gezogen hat public GameObject menu; //Menü für die Anzeiger der wer Zieht //Welche Person Wählt gerade aus public bool auswahl_karl = false; public bool auswahl_manu = false; public bool auswahl_lena = false; public bool auswahl_patrick = false; public bool auswahl_nina = false; public bool auswahl_sven = false; // Partner von der Person die Zieht public bool partner_karl = false; public bool partner_manu = false; public bool partner_lena = false; public bool partner_patrick = false; public bool partner_nina = false; public bool partner_sven = false; // Welche person wurde gezogen public bool gezogen_karl = false; public bool gezogen_manu = false; public bool gezogen_lena = false; public bool gezogen_patrick = false; public bool gezogen_nina = false; public bool gezogen_sven = false; public string gezogen = "leer"; //Text anzeige für die Person die gerade gezogen wurde. public Text gezogentext; public int randomZahl = 0; //Für die Zufallszahl // Auswahl wer Zieht public void Karl () { Debug.Log ("Karl"); auswahl_karl = true; auswahl_manu = false; auswahl_lena = false; auswahl_patrick = false; auswahl_nina = false; auswahl_sven = false; partner_karl = false; partner_manu = true; partner_lena = false; partner_patrick = false; partner_nina = false; partner_sven = false; button1.SetActive (false); //deaktiviert den Button das er nicht noch einmal zieht Ziehen (); } public void Manu () { Debug.Log ("Manuela"); auswahl_karl = false; auswahl_manu = true; auswahl_lena = false; auswahl_patrick = false; auswahl_nina = false; auswahl_sven = false; partner_karl = true; partner_manu = false; partner_lena = false; partner_patrick = false; partner_nina = false; partner_sven = false; button2.SetActive (false); //deaktiviert den Button das er nicht noch einmal zieht Ziehen (); } public void Lena () { Debug.Log ("Lena"); auswahl_karl = false; auswahl_manu = false; auswahl_lena = true; auswahl_patrick = false; auswahl_nina = false; auswahl_sven = false; partner_karl = false; partner_manu = false; partner_lena = false; partner_patrick = true; partner_nina = false; partner_sven = false; button3.SetActive (false); //deaktiviert den Button das er nicht noch einmal zieht Ziehen (); } public void Patrick () { Debug.Log ("Patrick"); auswahl_karl = false; auswahl_manu = false; auswahl_lena = false; auswahl_patrick = true; auswahl_nina = false; auswahl_sven = false; partner_karl = false; partner_manu = false; partner_lena = true; partner_patrick = false; partner_nina = false; partner_sven = false; button4.SetActive (false); //deaktiviert den Button das er nicht noch einmal zieht Ziehen (); } public void Nina () { Debug.Log ("Nina"); auswahl_karl = false; auswahl_manu = false; auswahl_lena = false; auswahl_patrick = false; auswahl_nina = true; auswahl_sven = false; partner_karl = false; partner_manu = false; partner_lena = false; partner_patrick = false; partner_nina = false; partner_sven = true; button5.SetActive (false); //deaktiviert den Button das er nicht noch einmal zieht Ziehen (); } public void Sven () { Debug.Log ("Sven"); auswahl_karl = false; auswahl_manu = false; auswahl_lena = false; auswahl_patrick = false; auswahl_nina = false; auswahl_sven = true; partner_karl = false; partner_manu = false; partner_lena = false; partner_patrick = false; partner_nina = true; partner_sven = false; button6.SetActive (false); //deaktiviert den Button das er nicht noch einmal zieht Ziehen (); } //Zurück zu der Butten auswahl wer ziehen soll public void Auswahl () { randomZahl = 0; menu.SetActive (true); anzeige.SetActive (false); Debug.Log ("Zur Auswahl"); } //das Ziehungs auswahlverfahren. public void Ziehen () { menu.SetActive (false); randomZahl = Random.Range (1, 6); Debug.Log (randomZahl); if (randomZahl == 1) //Karl { if (auswahl_karl == true) { Ziehen (); } else { if (partner_manu == true) { Ziehen (); } else { if (gezogen_karl == true) { Ziehen (); } else { gezogen = "Karl-Heinz"; gezogentext.text = gezogen; gezogen_karl = true; auswahl_karl = false; auswahl_manu = false; auswahl_lena = false; auswahl_patrick = false; auswahl_nina = false; auswahl_sven = false; partner_karl = false; partner_manu = false; partner_lena = false; partner_patrick = false; partner_nina = false; partner_sven = false; anzeige.SetActive(true); } } } } else { if (randomZahl == 2) //Manu { if (auswahl_manu == true) { Ziehen (); } else { if (partner_karl == true) { Ziehen (); } else { if (gezogen_manu == true) { Ziehen (); } else { gezogen = "Manuela"; gezogentext.text = gezogen; gezogen_manu = true; auswahl_karl = false; auswahl_manu = false; auswahl_lena = false; auswahl_patrick = false; auswahl_nina = false; auswahl_sven = false; partner_karl = false; partner_manu = false; partner_lena = false; partner_patrick = false; partner_nina = false; partner_sven = false; anzeige.SetActive (true); } } } } else { if (randomZahl == 3) //Lena { if (auswahl_lena == true) { Ziehen (); } else { if (partner_patrick == true) { Ziehen (); } else { if (gezogen_lena == true) { Ziehen (); } else { gezogen = "Lena"; gezogentext.text = gezogen; gezogen_lena = true; auswahl_karl = false; auswahl_manu = false; auswahl_lena = false; auswahl_patrick = false; auswahl_nina = false; auswahl_sven = false; partner_karl = false; partner_manu = false; partner_lena = false; partner_patrick = false; partner_nina = false; partner_sven = false; anzeige.SetActive (true); } } } } else { if (randomZahl == 4) //Patrick { if (auswahl_patrick == true) { Ziehen (); } else { if (partner_lena == true) { Ziehen (); } else { if (gezogen_patrick == true) { Ziehen (); } else { gezogen = "Patrick"; gezogentext.text = gezogen; gezogen_patrick = true; auswahl_karl = false; auswahl_manu = false; auswahl_lena = false; auswahl_patrick = false; auswahl_nina = false; auswahl_sven = false; partner_karl = false; partner_manu = false; partner_lena = false; partner_patrick = false; partner_nina = false; partner_sven = false; anzeige.SetActive (true); } } } } else { if (randomZahl == 5) //Nina { if (auswahl_nina == true) { Ziehen (); } else { if (partner_sven == true) { Ziehen (); } else { if (gezogen_nina == true) { Ziehen (); } else { gezogen = "Nina"; gezogentext.text = gezogen; gezogen_nina = true; auswahl_karl = false; auswahl_manu = false; auswahl_lena = false; auswahl_patrick = false; auswahl_nina = false; auswahl_sven = false; partner_karl = false; partner_manu = false; partner_lena = false; partner_patrick = false; partner_nina = false; partner_sven = false; anzeige.SetActive (true); } } } } else { if (randomZahl == 6) //Sven { if (auswahl_sven == true) { Ziehen (); } else { if (partner_nina == true) { Ziehen (); } else { if (gezogen_sven == true) { Ziehen (); } else { gezogen = "Sven"; gezogentext.text = gezogen; gezogen_sven = true; auswahl_karl = false; auswahl_manu = false; auswahl_lena = false; auswahl_patrick = false; auswahl_nina = false; auswahl_sven = false; partner_karl = false; partner_manu = false; partner_lena = false; partner_patrick = false; partner_nina = false; partner_sven = false; anzeige.SetActive (true); } } } } } } } } } } }
  3. Guten Abend zusammen, ich bin gerade dabei ein Schalter Rätsel zu erstellen. Am Anfang hatte ich das Problem das wenn ich den Schalter gedrückt habe meine Rote und Blaue Wegsperre sich nicht geändert hatten(Rot wird frei und Blau wird gesperrt. Beim nochmaligen Aktiviren des Schalters soll Rot gesperrt werden und Blau soll frei werden). Nach dem ich zwei neue GameObject Variablen erstellt hatte und im Inspector sie dann zugewiesen hatte funktionierte es. Wenn ich weitere Wegsperren eingefügt hatte in der Scene wurden die Ignoriert. Klar hatten keine Verknüpfung zum Schalter. Jetzt würde ich das Script erweitern. das ich weitere Sperren einfügen kann. Option 1 wäre das ich so viele GameObject Variablen erstelle so viele Sperren ich habe. aber ich müsste dann in den Script genau so viele verknüpfungen erstellen was natürlich unflexibel wäre. Habe mir dann Option 2 Überlegt das ich ein GameObject Array erstelle das ich für jede Scene wo ich mit den Sperren arbeite unterschiedliche anzahlen von Sperren nutzen kann. Sobald ich aber das Array erstelle mault mein Visual Studio das er mit den Befehl rotebox.GetComponent<rswitch>.switchred(); nichts anfangen kann bzw. blauebox.GetComponent<bswitch>.switchblue(); bswitch und rswitch sind zwei Script die bei den jeweiligen Sperren eine Animation abspielen wie die Sperre ein oder ausfährt und dementsprechend den Box Collider 2d aktiviert oder deaktiviert. using System.Collections; using System.Collections.Generic; using UnityEngine; public class RBSwitch : MonoBehaviour { private Animator anim; public GameObject[] rotebox; public GameObject[] blauebox; // Start is called before the first frame update void Start() { //rotebox = GameObject.Find("/Rot/R_Box"); //blauebox = GameObject.Find("/B_Box"); //rotebox = GameObject.FindGameObjectsWithTag("switch_r"); //blauebox = GameObject.FindGameObjectsWithTag("switch_b"); anim = GetComponent<Animator>(); } // Update is called once per frame void Update() { } public void Smash() { if (anim.GetBool("rbonoff") == true) { anim.SetBool("rbonoff", false); rotebox.GetComponent<rswitch>().switchred(); blauebox.GetComponent<bswitch>().switchblue(); } else { anim.SetBool("rbonoff", true); blauebox.GetComponent<bswitch>().switchblue(); rotebox.GetComponent<rswitch>().switchred(); } } } wo habe ich da meine Fehler drin bzw. habe ich denn falschen Ansatz für mein Rätsel? Hier unten habe ich noch ein Screen von einen alten Spiel vom Super Nintendo das man sich in etwas vorstellen kann was ich meine.
  4. Hallo zusammmen, ich heiße Sven, meine Freunde nennen mich Blubbi und im Internet bin ich unter den Namen unterwegs 😀 Ich bin hier zu euch gestoßen da mir das Spieleprogrammieren viel Spaß macht. Angefangen hat es damals mit den RPG Maker 2000, mit den ich paar Projekt am laufen hatte. Ich hatte danach eine längere Pause gehabt und habe mir den RPG Maker MV geholt mit ihn zu arbeiten und herum zu Testen. Es hatte mir nicht wirklich Spaß gemacht mit den Programm zu arbeiten. Da man ja doch eingeschränkt ist. Mit Unity verspreche ich mir mehr. Ich habe schon viele Videos und paar Tutorials von Unity angesehen und bin immer mehr begeistert. Ich hoffe hier in der Community auf paar nette Leute zu treffen mit den ich mich austauschen oder Hilfe finde wenn etwas mal nicht funktioniert. Euer Blubbi
  5. Hallo zusammen, ich bin seit paar Tagen dabei mich mit Unity 3D einzuarbeiten und danach C# anzueignen. Der Zeit sehe ich mir ein YouTube Tutorial für ein 2D Top-down Game an. In den Tutorial wird per Tilemap die 2D Map erstellt, das Camera Movement wurde so gescriptet das man den Bereich der Map, die Minimale und Maximale X und Y Achse einstellt damit die Camera nicht ins graue hinaus geht. Mit einen GameObject wird auf der Map wird per Trigger die Minimale und Maximale X und Y Achse eine Wert dazu addiert um in einen anderen Sektor zukommen. Da ich immer etwas herumspiele würde gerne das Trigger Script abändern. Zurzeit arbeitet das Script das er den Wert von X und Y addiert oder Subtrahiert. Ich würde es so umbauen das ich den Inspector die neuen Werte für die Camera eintrage und die dann an der Camera übertragen wird. Weis aber noch nicht wie es funktioniert. Habt ihr da für mich ein Tipp? Script für die Camera Bewegung using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraMovement : MonoBehaviour { public Transform target; public float smoothing; public Vector2 maxPosition; public Vector2 minPosition; // Start is called before the first frame update void Start() { } // Update is called once per frame void LateUpdate() { if (transform.position != target.position) { Vector3 targetPosition = new Vector3(target.position.x, target.position.y, transform.position.z); targetPosition.x = Mathf.Clamp(targetPosition.x, minPosition.x, maxPosition.x); targetPosition.y = Mathf.Clamp(targetPosition.y, minPosition.y, maxPosition.y); transform.position = Vector3.Lerp(transform.position, targetPosition, smoothing); } } } Script wenn der Player den Collider berührt und die X und Y werte addiert werden using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class RoomMove : MonoBehaviour { public Vector2 cameraChange; public Vector3 playerChange; private CameraMovement cam; public bool needText; public string placeName; public GameObject text; public Text placeText; // Start is called before the first frame update void Start() { cam = Camera.main.GetComponent<CameraMovement>(); } // Update is called once per frame void Update() { } private void OnTriggerEnter2D(Collider2D other) { if(other.CompareTag("Player")) { cam.minPosition += cameraChange; cam.maxPosition += cameraChange; other.transform.position += playerChange; if(needText) { StartCoroutine(placeNameCo()); } } } private IEnumerator placeNameCo() { text.SetActive(true); placeText.text = placeName; yield return new WaitForSeconds(0.8f); text.SetActive(false); } }
×
×
  • Create New...