Jump to content
Unity Insider Forum

peachplayer

Members
  • Content count

    94
  • Joined

  • Last visited

  • Days Won

    1

peachplayer last won the day on October 31 2016

peachplayer had the most liked content!

Community Reputation

3 Neutral

About peachplayer

  • Rank
    Advanced Member

Recent Profile Visitors

1,142 profile views
  1. peachplayer

    Text positionieren

    Hallo Leute Weiss jemand wie man in Unity zuvor gespeicherte PlayerPrefs als Texte an verschiedenen Koordinaten positionieren kann? Habe es so probiert: scoreText.text = PlayerPrefs.GetString("Parzellenname_p" + i); scoreText.transform.position = new Vector3(-400+i*80, -80+i*50, 0); leider klappt das bei mir nicht! Kann mir jemand helfen? Gruss peachplayer
  2. peachplayer

    Rechtecke zeichnen

    Hallo Leute Weiss jemand, wie man auf einer 2-dimensionalen Fläche verschiedene Rechtecke zeichnen kann? Die Rechtecke sollten also auf einer Matrix dargestellt werden. Habe es mit folgendem Code versucht: using System.Collections; using System.Collections.Generic; using UnityEngine; public class drawRectangle : MonoBehaviour { public Rect[] rec = new Rect[20]; public Color[] imageOneD = new Color[20]; public Texture aTexture; public Material mat; // Use this for initialization void Start () { float offsetX =10.0f; float offsetZ = 5.0f; float abstandX = 20f; float abstandZ = 25f; int x; // einfache Zaehlvariable int z; // einfache Zaehlvariable int k=0; // einfache Zaehlvariable float newX; float newZ; for (z = 0; z < 2; z++) { for (x = 0; x < 10; x++) { //k = k + 1; k = 2*z+x; newX = offsetX + x * abstandX; newZ = offsetZ + z * abstandZ; rec[k] = new Rect(newX, newZ, Screen.width / 10, Screen.height / 15); Debug.Log(rec[k].position.x + " an Position " + newX + " : " + newZ); } } } void OnGUI() { int leftBorder = 10; int rightBorder = 10; int topBorder = 5; int bottomBorder = 5; for (int i = 0; i < 20; i++) { // Draw colored rectangle GUI.color = imageOneD[i]; Graphics.DrawTexture (rec[i], aTexture, leftBorder, rightBorder , topBorder , bottomBorder, mat); } } Leider klappt das nicht richtig, weil die Rechtecke irgendwie zufällig angeordnet werden statt nebeneinander. Gruss, peachplayer
  3. peachplayer

    Variablen zusammenfassen

    Danke vielmals für die Antworten. Ich konnte das Problem inzwischen selber lösen! Habe einfach eine doppelte Schleife gemacht! Gruss peachplayer
  4. peachplayer

    Variablen zusammenfassen

    void ListeFuellen() { for (int z= 0; z < 10; z++) { for (int i = 0; i < 10; i++) { if (PlayerPrefs.GetString("Parzellenname_d" + i) == (PlayerPrefs.GetString("Parzellenname_d" + z))) { NA = PlayerPrefs.GetFloat("NA" + i) + PlayerPrefs.GetFloat("NA" + z); PA = PlayerPrefs.GetFloat("PA" + i) + PlayerPrefs.GetFloat("PA" + z); KA = PlayerPrefs.GetFloat("KA" + i) + PlayerPrefs.GetFloat("KA" + z); MgA = PlayerPrefs.GetFloat("MgA" + i) + PlayerPrefs.GetFloat("MgA" + z); } else { NA = PlayerPrefs.GetFloat("NA" + i); PA = PlayerPrefs.GetFloat("PA" + i); KA = PlayerPrefs.GetFloat("KA" + i); MgA = PlayerPrefs.GetFloat("MgA" + i); } int Nummer = PlayerPrefs.GetInt("Nummer_d" + i); string Parzellenname = PlayerPrefs.GetString("Parzellenname_b" + i); NBilanz = NA - PlayerPrefs.GetFloat("Nb" + i); PBilanz = PA - PlayerPrefs.GetFloat("Pb" + i); KBilanz = KA - PlayerPrefs.GetFloat("Kb" + i); MgBilanz = MgA - PlayerPrefs.GetFloat("Mgb" + i); DüngerEintrag_NPK_Bilanz eintrag = new DüngerEintrag_NPK_Bilanz(Nummer, Parzellenname, NBilanz, PBilanz, KBilanz, MgBilanz); liste.Add(eintrag); } } Habs nochmals etwas korrigiert. Die Ausgabewerte sind NBilanz, PBilanz, KBilanz u. MgBilanz. Gruss peachplayer
  5. peachplayer

    Variablen zusammenfassen

    Hallo Leute Weiss jemand, wie man zuvor gespeicherte Player-Prefs-Werte als Variabeln zusammenfassen kann? Habe es wie folgt probiert: void ListeFuellen() { for (int i = 0; i < 10; i++) { if (PlayerPrefs.GetString("Parzellenname_d" + i) == (PlayerPrefs.GetString("Parzellenname_d" + i+1))) { NA = PlayerPrefs.GetFloat("NA" + i) + PlayerPrefs.GetFloat("NA" + i + 1); PA = PlayerPrefs.GetFloat("PA" + i) + PlayerPrefs.GetFloat("PA" + i + 1); KA = PlayerPrefs.GetFloat("KA" + i) + PlayerPrefs.GetFloat("KA" + i + 1); MgA = PlayerPrefs.GetFloat("MgA" + i) + PlayerPrefs.GetFloat("MgA" + i + 1); } } { for (int i = 0; i < 10; i++) { int Nummer = PlayerPrefs.GetInt("Nummer_d" + i); string Parzellenname = PlayerPrefs.GetString("Parzellenname_b" + i); NBilanz = NA - PlayerPrefs.GetFloat("Nb" + i); PBilanz = PA - PlayerPrefs.GetFloat("Pb" + i); KBilanz = KA - PlayerPrefs.GetFloat("Kb" + i); MgBilanz = MgA - PlayerPrefs.GetFloat("Mgb" + i); DüngerEintrag_NPK_Bilanz eintrag = new DüngerEintrag_NPK_Bilanz(Nummer, Parzellenname,NBilanz, PBilanz, KBilanz, MgBilanz); liste.Add(eintrag); } } Leider gibt das falsche Ausgabewerte. Kann mir jemand helfen? Gruss, peachplayer
  6. peachplayer

    Text von Listenfeld ausgeben

    Hallo Leute Konnte das Problem endlich lösen. Der Fehler lag in den PlayerPrefs! Gruss, peachplayer
  7. peachplayer

    Text von Listenfeld ausgeben

    Hier der Code für das Befüllen der Liste: void ListeFuellen() { for (int i = 0; i < 10; i++) { if (PlayerPrefs.HasKey("Nummer_p" + i)) { int Nummer = PlayerPrefs.GetInt("Nummer_d" + i); string Parzellenname = PlayerPrefs.GetString("Parzellenname_b" + i); NBilanz = PlayerPrefs.GetFloat("NSum" + i) - PlayerPrefs.GetFloat("NbSum" + i); PBilanz = PlayerPrefs.GetFloat("PSum" + i) - PlayerPrefs.GetFloat("PbSum" + i); KBilanz = PlayerPrefs.GetFloat("KSum" + i) - PlayerPrefs.GetFloat("KbSum" + i); MgBilanz = PlayerPrefs.GetFloat("MgSum" + i) - PlayerPrefs.GetFloat("MgbSum" + i); DüngerEintrag_NPK_Bilanz eintrag = new DüngerEintrag_NPK_Bilanz(Nummer, Parzellenname,NBilanz, PBilanz, KBilanz, MgBilanz); liste.Add(eintrag); } else break; } Gruss, peachplayer
  8. peachplayer

    Text von Listenfeld ausgeben

    Hallo Sascha Habe das probiert für Debug.Log(liste[i].GetNBilanz()); und es kommen die gleichen Werte wie bei dem Screenshot heraus, also "70", "140", "210". Gruss peachplayer
  9. peachplayer

    Text von Listenfeld ausgeben

    Leider konnte ich das Problem mit den Lösungsvorschlägen bisher noch nicht lösen! In der Methode GetNBilanz() wird keine Variable aufsummiert! Daher ist der Fehler wohl eher in der Funktion ListeAnzeigen() zu suchen. Kann mir jemand weiterhelfen? Gruss, peachplayer
  10. peachplayer

    Text von Listenfeld ausgeben

    NAnzeige.text = NAusgabe.ToString(); etc.
  11. peachplayer

    Text von Listenfeld ausgeben

    Das nützt leider auch nichts!
  12. peachplayer

    Text von Listenfeld ausgeben

    Hallo Leute Weiss jemand wie man den Text eines Listenfeldes zeilenweise ausgeben kann, ohne dass die Werte kumuliert werden? Habe es wie folgt probiert: void ListeAnzeigen() { string NummerAusgabe = ""; string ParzellennameAusgabe = ""; string NAusgabe = ""; string PAusgabe = ""; string KAusgabe = ""; string MgAusgabe = ""; for (int i = 0; i < liste.Count; i++) { NummerAusgabe += liste[i].GetNummer() + "\n"; ParzellennameAusgabe += liste[i].GetParzellenname() + "\n"; NAusgabe += liste[i].GetNBilanz() + "\n"; PAusgabe += liste[i].GetPBilanz() + "\n"; KAusgabe += liste[i].GetKBilanz() + "\n"; MgAusgabe += liste[i].GetMgBilanz() + "\n"; NAnzeige.text = NAusgabe; PAnzeige.text = PAusgabe; KAnzeige.text = KAusgabe; MgAnzeige.text = MgAusgabe; } } Leider werden die Werte der Variabeln NAusgabe, PAusgabe, KAusgabe, MgAusgabe dabei aufsummiert! Gruss, peachplayer
  13. peachplayer

    im Script gespeicherte Werte werden nicht angezeigt

    ...Au weia... habe gemerkt dass im Inspector andere Werte eingetragen waren! Gruss Peachplayer
  14. using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; public class Anzeige1 : MonoBehaviour { List<HighscoreEintrag> liste; public InputField NummerEingabe; public InputField ParzellennameEingabe; public InputField FlächeEingabe; public InputField KulturEingabe; public Text NummerAnzeige, ParzellennameAnzeige, FlächeAnzeige, KulturAnzeige, KassenbestandAnzeige, ÖkobilanzAnzeige; public Toggle anzeigeSchalter; public Rect windowRect0 = new Rect(600, 20, 120, 50); public string[] Flurname = new string[5] { "Fahlrüti1", "Studenacker1", "Suchern1", "Wille2", "Zuchern" }; public float[] Area = new float[5] { 219, 155, 185, 88, 77 }; public string[] Kulturen = new string[5] { "Winterweizen", "Mais", "Wintergerste", "Wintergerste", "Wintergerste" }; public int k; void Start() { liste = new List<HighscoreEintrag>(); ListeFuellen(); } void ListeFuellen() { for (int i = 0; i < 10; i++) { if (PlayerPrefs.HasKey("Parzellenname_p" + i)) { int Nummer = PlayerPrefs.GetInt("Nummer_p" + i); string Parzellenname = PlayerPrefs.GetString("Parzellenname_p" + i); string Kultur = PlayerPrefs.GetString("Kultur_p" + i); float Fläche = PlayerPrefs.GetFloat("Fläche_p" + i); HighscoreEintrag eintrag = new HighscoreEintrag(Nummer, Parzellenname, Fläche, Kultur); liste.Add(eintrag); } else break; } ListeAnzeigen(); } void ListeAnzeigen() { string NummerAusgabe = ""; string ParzellennameAusgabe = ""; string FlächeAusgabe = ""; string KulturAusgabe = ""; string NAusgabe = ""; string PAusgabe = ""; string KAusgabe = ""; string MgAusgabe = ""; for (int i = 0; i < liste.Count && i < 10; i++) { NummerAusgabe += liste[i].GetNummer() + "\n"; ParzellennameAusgabe += liste[i].GetParzellenname() + "\n"; FlächeAusgabe += liste[i].GetFläche() + "\n"; KulturAusgabe += liste[i].GetKultur() + "\n"; if (liste[i].GetKultur() == "Winterweizen") Debug.Log("Winterweizen"); PlayerPrefs.SetFloat("Ertrag_ww" + i, 7000.0f); if (liste[i].GetKultur() == "Wintergerste") PlayerPrefs.SetFloat("Ertrag_wg" + i, 5000.0f); Debug.Log("Wintergerste"); if (liste[i].GetKultur() == "Mais") PlayerPrefs.SetFloat("Ertrag_m" + i, 10000.0f); Debug.Log("Mais"); //NAusgabe += liste[i].GetN() + "\n"; //PAusgabe += liste[i].GetP() + "\n"; //KAusgabe += liste[i].GetK() + "\n"; //MgAusgabe += liste[i].GetMg() + "\n"; } NummerAnzeige.text = NummerAusgabe; ParzellennameAnzeige.text = ParzellennameAusgabe; FlächeAnzeige.text = FlächeAusgabe; KulturAnzeige.text = KulturAusgabe; KassenbestandAnzeige.text = PlayerPrefs.GetFloat("Kassenbestand").ToString(); ÖkobilanzAnzeige.text = PlayerPrefs.GetFloat("Ökobilanz").ToString(); //NAnzeige.text = NAusgabe; //PAnzeige.text = PAusgabe; //KAnzeige.text = KAusgabe; //MgAnzeige.text = MgAusgabe; } public void NeuerEintragHinzu() { HighscoreEintrag neuerEintrag = ZufallsEintrag(); k++; bool eingefuegt = false; for (int i = 0; i < liste.Count; i++) { if (!liste[i].GroesserAls(neuerEintrag.GetNummer())) { liste.Insert(i, neuerEintrag); eingefuegt = true; break; } } if (!eingefuegt) liste.Add(neuerEintrag); ListeAnzeigen(); ListeSpeichern(); } HighscoreEintrag ZufallsEintrag() { int Nummer = int.Parse(NummerEingabe.text); string Parzellenname = ParzellennameEingabe.text; float Fläche = float.Parse(FlächeEingabe.text); string Kultur = KulturEingabe.text; string eingabe = ParzellennameEingabe.text; if (Nummer == 0 && eingabe == "" && Fläche == 0 && Kultur == "" && k<=4) { Nummer = k; Parzellenname = Flurname[k]; Fläche = Area[k]; Kultur = Kulturen[k]; HighscoreEintrag neuerEintrag1 = new HighscoreEintrag(Nummer, Parzellenname, Fläche, Kultur); return neuerEintrag1; } if (eingabe != "") { if (eingabe.Length >= 20) eingabe = eingabe.Substring(0, 20); Parzellenname = eingabe; } HighscoreEintrag neuerEintrag = new HighscoreEintrag(Nummer, Parzellenname, Fläche, Kultur); return neuerEintrag; } void ListeSpeichern() { for (int i = 0; i < liste.Count && i < 10; i++) { PlayerPrefs.SetInt("Nummer_p" + i, liste[i].GetNummer()); PlayerPrefs.SetString("Parzellenname_p" + i, liste[i].GetParzellenname()); PlayerPrefs.SetFloat("Fläche_p" + i, liste[i].GetFläche()); PlayerPrefs.SetString("Kultur_p" + i, liste[i].GetKultur()); } } public void AllesLoeschen() { NummerAnzeige.text = ""; ParzellennameAnzeige.text = ""; FlächeAnzeige.text = ""; KulturAnzeige.text = ""; liste.Clear(); PlayerPrefs.DeleteAll(); } void OnGUI() { if (PlayerPrefs.GetFloat("Kassenbestand") >= 100000) windowRect0 = GUI.Window(0, windowRect0, DoMyWindow, "Spiel gewonnen!"); //GUILayout.Label("Spiel gewonnen!"); if (PlayerPrefs.GetFloat("Kassenbestand") <= -50000) windowRect0 = GUI.Window(0, windowRect0, DoMyWindow,"Spiel verloren!"); //GUILayout.Label("Spiel verloren!"); if (PlayerPrefs.GetFloat("Ökobilanz") <= -1000) windowRect0 = GUI.Window(0, windowRect0, DoMyWindow, "Spiel verloren!"); //GUILayout.Label("Spiel verloren!"); //if (gameRunning) //{ // GUILayout.Label("Aktuelle Runde: " + currentRound); // GUILayout.Label("Aktueller Spieler: " + currentPlayer); // GUILayout.Label("Aktueller Spielzug: " + currentBall); //} else //{ // GUILayout.Label("Spiel starten mit linker Maustaste."); //} if (GUI.Button(new Rect(10, 10, 200, 50), "Parzellendaten eingeben")) Application.LoadLevel(0); if (GUI.Button(new Rect(10, 100, 200, 50), "Dünger eingeben")) Application.LoadLevel(1); if (GUI.Button(new Rect(10, 150, 200, 50), "Pflanzenschutzmittel eingeben")) Application.LoadLevel(2); if (GUI.Button(new Rect(10, 200, 200, 50), "Feldarbeiten eingeben")) Application.LoadLevel(3); if (GUI.Button(new Rect(10, 250, 200, 50), "Kosten anzeigen")) Application.LoadLevel(4); if (GUI.Button(new Rect(10, 300, 200, 50), "DB anzeigen")) Application.LoadLevel(5); if (GUI.Button(new Rect(10, 350, 200, 50), "Nährstoffbilanz anzeigen")) Application.LoadLevel(6); if (GUI.Button(new Rect(10, 400, 200, 50), "Spiel neu starten")) PlayerPrefs.DeleteAll(); } void DoMyWindow(int windowID) { } public void AnzeigeSchalterGeklickt() { if (anzeigeSchalter.isOn) ListeAnzeigen(); else { NummerAnzeige.text = ""; ParzellennameAnzeige.text = ""; FlächeAnzeige.text = ""; KulturAnzeige.text = ""; } } public void Animation_anzeigen() { Application.LoadLevel(9); } } Hallo Leute Versuche mit obigem Code vordefienierte Werte für die Variable "Area[ ]" anzuzeigen bei der Tasteneingabe "0". Leider funktioniert das nicht und es werden nur bereits in den Player-Prefs gespeicherte Werte angezeigt. Woran könnte das liegen? Bin dankbar für Antworten! Gruss Peachplayer
  15. peachplayer

    umfangreiche Daten abspeichern

    Hallo Leute Weiss jemand, wie man mit Unity umfangreiche Daten abspeichern kann? Die Player-Prefs eignen sich dafür wohl eher nicht, oder? Gibt es ein geeignetes Asset dafür? Gruss Peachplayer
×