

peachplayer
Members-
Posts
256 -
Joined
-
Last visited
-
Days Won
2
peachplayer last won the day on January 26 2021
peachplayer had the most liked content!
peachplayer's Achievements

Advanced Member (3/3)
5
Reputation
-
endlich hats geklappt! Jetzt sieht der Output so aus:
-
danke für den tipp! Ich benütze das Graph-tool von CodeMonkey bereits in einem meiner Projekte. Leider krieg ich noch keine BarCharts als Output. Gruss, peachplayer
-
...jetzt werden alle 3 Kulturen angezeigt jedoch "verschoben":
-
jetzt kommt sowas raus: using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; using System; using System.Collections; using System.Xml; using System.Xml.Serialization; using System.IO; using UnityEditor; using System.Xml.Linq; using UnityEngine.SceneManagement; using UnityEngine.Networking; using System.Drawing; using System.Net; public class DrawManager : MonoBehaviour { public LineRenderer lineRenderer1, lineRenderer2,lineRenderer3; public GameObject drawingPrefab; List<DateTime> valueList = new List<DateTime>(); List<DateTime> valueList1 = new List<DateTime>(); List<int> valueList3 = new List<int>(); List<int> valueList2 = new List<int>(); string KulturenAusgabe = ""; List<Feldarbeit> liste1; void Start() { liste1 = new List<Feldarbeit>(); liste1 = MyXML.DeserializeFromXML<Feldarbeit>(".\\Feldarbeit.xml"); GameObject drawing = Instantiate(drawingPrefab); lineRenderer1 = drawing.GetComponent<LineRenderer>(); UnityEngine.Color newColor = UnityEngine.Color.red; ListeFuellen(); } private int ListeFuellen() { foreach (Feldarbeit item in liste1) { if (item.Feldarbeiten == "dreschen" | item.Feldarbeiten == "Siloballen" && item.Datum.Year == 2022) { if (item.Kultur == "Winterweizen") { DateTime now = DateTime.Now; int duration = (now.DayOfYear - item.Datum.DayOfYear); float alpha = 1.0f; Gradient gradient = new Gradient(); gradient.SetKeys( new GradientColorKey[] { new GradientColorKey(UnityEngine.Color.yellow, 0.0f), new GradientColorKey(UnityEngine.Color.yellow, 1.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(alpha, 0.0f), new GradientAlphaKey(alpha, 1.0f) } ); lineRenderer1.colorGradient = gradient; Debug.Log(item.Kultur + duration); FreeDraw(duration); } if (item.Kultur == "Mais") { DateTime now = DateTime.Now; int duration = (now.DayOfYear - item.Datum.DayOfYear); float alpha = 1.0f; Gradient gradient = new Gradient(); gradient.SetKeys( new GradientColorKey[] { new GradientColorKey(UnityEngine.Color.green, 0.0f), new GradientColorKey(UnityEngine.Color.green, 1.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(alpha, 0.0f), new GradientAlphaKey(alpha, 1.0f) } ); lineRenderer2.colorGradient = gradient; Debug.Log(item.Kultur + duration); FreeDraw(duration); } if (item.Kultur == "Wintergerste") { DateTime now = DateTime.Now; int duration = (now.DayOfYear - item.Datum.DayOfYear); float alpha = 1.0f; Gradient gradient = new Gradient(); gradient.SetKeys( new GradientColorKey[] { new GradientColorKey(UnityEngine.Color.red, 0.0f), new GradientColorKey(UnityEngine.Color.red, 1.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(alpha, 0.0f), new GradientAlphaKey(alpha, 1.0f) } ); lineRenderer3.colorGradient = gradient; Debug.Log(item.Kultur + duration); FreeDraw(duration); } } } return 0; } void Update() { } void FreeDraw(int duration) { int offset = duration; int z = duration; z++; valueList2.Add(duration); Debug.Log("duration = " + duration); lineRenderer1.startWidth = 10.0f; lineRenderer1.endWidth = 10.0f; Vector3 startPos = new Vector3(0, offset, 0f); Vector3 mousePos = new Vector3(z + offset, 50f, 0f); lineRenderer1.SetPosition(0, startPos); lineRenderer1.SetPosition(1, mousePos); lineRenderer2.startWidth = 10.0f; lineRenderer2.endWidth = 10.0f; lineRenderer2.SetPosition(0, startPos); lineRenderer2.SetPosition(1, mousePos); lineRenderer3.SetPosition(0, startPos); lineRenderer3.SetPosition(1, mousePos); lineRenderer3.startWidth = 10.0f; lineRenderer3.endWidth = 10.0f; } }
-
using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; using System; using System.Collections; using System.Xml; using System.Xml.Serialization; using System.IO; using UnityEditor; using System.Xml.Linq; using UnityEngine.SceneManagement; using UnityEngine.Networking; public class DrawManager : MonoBehaviour { private LineRenderer lineRenderer; public GameObject drawingPrefab; List<DateTime> valueList = new List<DateTime>(); List<DateTime> valueList1 = new List<DateTime>(); List<int> valueList3 = new List<int>(); List<int> valueList2 = new List<int>(); string KulturenAusgabe = ""; List<Feldarbeit> liste1; void Start() { liste1 = new List<Feldarbeit>(); liste1 = MyXML.DeserializeFromXML<Feldarbeit>(".\\Feldarbeit.xml"); for (int i = 0; i < liste1.Count; i++) { if (liste1[i].Datum.Year == 2022) { if (liste1[i].Feldarbeiten == "säen") valueList.Add(liste1[i].Datum); KulturenAusgabe += liste1[i].Parzellenname + " " + liste1[i].Kultur + "\n"; } } for (int i = 0; i < liste1.Count; i++) { if (liste1[i].Datum.Year == 2023) { if (liste1[i].Feldarbeiten == "dreschen") valueList1.Add(liste1[i].Datum); KulturenAusgabe += liste1[i].Parzellenname + " " + liste1[i].Kultur + "\n"; } } GameObject drawing = Instantiate(drawingPrefab); lineRenderer = drawing.GetComponent<LineRenderer>(); FreeDraw(); } void Update() { } void FreeDraw() { int z = 0; foreach (DateTime item in valueList1) { z = z + 20; DateTime now = DateTime.Now; int duration = (now.DayOfYear - item.DayOfYear); valueList2.Add(duration); Debug.Log("duration = "+duration + z); lineRenderer.startWidth = 0.1f; lineRenderer.endWidth = 0.5f; Vector3 mousePos = new Vector3(duration, z, 0.1f); lineRenderer.positionCount++; lineRenderer.SetPosition(lineRenderer.positionCount - 1, mousePos); } } } sieht jetzt so aus. Es sollten eigentlich farbige Rechtecke sein. Kann mir jemand helfen?
-
Könnte man ev. den ProBuilder dazu verwenden?
-
Hallo Leute Weiss jemand wie man einen Fruchtfolgeplan mit unity machen kann? Habs wie folgt probiert: public void ListeFuellen() { List<DateTime> valueList = new List<DateTime>(); List<DateTime> valueList1 = new List<DateTime>(); List<int> valueList3 = new List<int>(); List<int> valueList2 = new List<int>(); string KulturenAusgabe = ""; yLabelList = new List<RectTransform>(); graphVisualObjectList = new List<IGraphVisualObject>(); IGraphVisual lineGraphVisual = new LineGraphVisual(graphContainer, dotSprite, Color.green, new Color(1, 1, 1, .5f)); IGraphVisual barChartVisual = new BarChartVisual(graphContainer, Color.white, .8f); dropdown1 = GameObject.Find("Dropdown").GetComponent<Dropdown>(); liste1 = MyXML.DeserializeFromXML<Feldarbeit>(".\\Feldarbeit.xml"); dropdown3 = GameObject.Find("Dropdown3").GetComponent<Dropdown>(); // Kultur for (int i = 0; i < liste1.Count; i++) { if (liste1[i].Datum.Year == 2023) { if (liste1[i].Feldarbeiten == "säen") valueList.Add(liste1[i].Datum); KulturenAusgabe += liste1[i].Parzellenname + " " + liste1[i].Kultur + "\n"; } } for (int i = 0; i < liste1.Count; i++) { if (liste1[i].Datum.Year == 2023) { if (liste1[i].Feldarbeiten == "dreschen") valueList1.Add(liste1[i].Datum); KulturenAusgabe += liste1[i].Parzellenname + " " + liste1[i].Kultur + "\n"; } } foreach (DateTime item in valueList1) { DateTime now = DateTime.Now; int duration = (now.DayOfYear - item.DayOfYear); valueList2.Add(duration); Debug.Log(duration); } ShowGraph(valueList2, barChartVisual, -1, (int _i) => "Parzelle" + (_i + 1), (float _f) => "Fr." + Mathf.RoundToInt(_f)); Beim Output sollten farbige Rechtecke für die entsprechenden Kulturen und Vegetationsdauer herauskommen. Leider kommt dabei nur ein einfacher Graph heraus. Gruss peachplayer
-
Hallo Leute Weiss jemand wie man mehrere Textfelder in einem Canvas automatisch untereinander anordnen kann mit Script-Anweisung? Gruss, peachplayer
-
Hallo Leute, weiss jemand wie man einen richtigen webrequest macht mit unity? Habs wie folgt probiert: public IEnumerator LoadData() { string loadUrl = "http://web01.petweber.ch/php/Feldkalender/parzellen_load.php"; WWW www = new WWW(loadUrl); yield return www; if (!www.isDone) { Debug.Log(www.error); } else { Debug.Log("Form upload complete!" + www.text); } webString = www.text; ParzellennameAnzeige.text = webString; Debug.Log("webstring:" + webString.Length); webString = webString.Remove(webString.Length-1); char c = '|'; string[] highscoreArray; highscoreArray = webString.Split(c); FillHighscore(highscoreArray); HighScoreAnzeigen(); ListeAnzeigen(); } Die Mysql-Verbindung funktioniert jedoch ist der webString dann 0, also ohne inhalt. Kann mir jemand helfen? Die php-Abfrage sieht so aus: $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname) or die("Connect failed: %s\n". $conn -> error); echo "Connected Successfully"; $retval = mysqli_select_db( $conn, 'h159848_hofverkauf-weber' ); if(! $retval ) { die('Could not select database: ' . mysql_error($conn)); } echo "Database $dbname selected successfully\n"; // Create connection // Check connection // mySQL-Abfrage: $abfrage = "SELECT * FROM Parzelle "; $ergebnis = mysqli_query($abfrage); // Anzahl der Datensätze und Anzahl der Datenfelder bestimmen: $anzahl_datensaetze = mysqli_num_rows($ergebnis); $anzahl_felder = mysqli_num_fields($ergebnis); // Tabelle beginnen echo "<table border = '1'>"; // Erste Zeile echo "<tr>"; // Schleife 1: Für jedes Feld wird eine th-Zelle erzeugt und der Name eingesetzt: for ($n = 0; $n < $anzahl_felder; $n++) { $feldname = mysqli_field_name($ergebnis, $n); echo "<th>" . $feldname . "</th>\n"; } echo "</tr>"; // Schleife 2: Für jeden Datensatz wird ein foreach durchgeführt: while ($datensatz = mysqli_fetch_assoc($ergebnis)) { echo "<tr>"; // Schleife 2-1: Für jeden Wert des Arrays wird eine Zelle erzeugt und der Wert des Arrays ausgegeben: foreach ($datensatz as $key => $value) { echo "<td>" . $value . "</td>\n"; } echo "</tr>\n"; } echo "</table>"; mysqli --xml -u $dbuser -p $dbname table_name > parzelle.xml mysqli_close($link); // Verbindung zur Datenbank beenden ?>
-
danke für den tipp! Das geht dann wohl nur mit php-code? wie sieht sowas genau aus?
-
leider geht das nicht richtig. Habs wie folgt probiert: public IEnumerator SaveData(string Flurname, float Fläche, string Kultur, string Datum, float Ertrag, int Nummer) { string saveUrl = "http://web01.petweber.ch/Parzelle.xml"; WWWForm form = new WWWForm(); form.AddField("Parzellenname", Flurname); form.AddField("Flaeche", Fläche.ToString()); form.AddField("Ertrag", Ertrag.ToString()); form.AddField("Kultur", Kultur); form.AddField("Datum", Datum); form.AddField("Nummer", Nummer.ToString()); Debug.Log(Flurname + Fläche + Kultur); UnityWebRequest www = UnityWebRequest.Post("http://web01.petweber.ch/Parzelle.xml", form); yield return www.SendWebRequest(); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { Debug.Log("Form upload complete!"); } } Danach muss ich die Firewall des Servers ausschalten, damit kein Http-error kommt und es wird trotzdem nicht gespeichert. Woran liegt das?
-
das laden von xml-dateien von einer website habe ich hingekriegt, jetzt sollte ich die daten aber auch noch speichern können. Geht das auch mit der WWW-Klasse? Gruss peachplayer
-
Hallo Leute Weiss jemand, wie man xml-dateien von einem eigenen webserver laden kann. Habs mit einem webrequest versucht, jedoch geht das nicht, d.h. es kommt ein Http-error Fehlermeldung. Ich verwende folgenden xml-Parser: public class MyXML { static public List<T> DeserializeFromXML<T>(string path) { XmlSerializer deserializer = new XmlSerializer(typeof(List<T>)); TextReader textReader = new StreamReader(path); List<T> list; list = (List<T>)deserializer.Deserialize(textReader); textReader.Close(); return (List<T>)list; } Dieser funktioniert jedoch nur mit lokalen Dateien. Von einem webserver kann ich keine daten laden. Geht das nur via php und mysql? Gruss, peachplayer
-
public void kopieren() { string sourcePath = "E:/unity projekte/xml_files"; string targetPath = "E:/unity projekte/New Unity Project40.01 - Kopie/"; if (System.IO.Directory.Exists(sourcePath)) { string[] files = System.IO.Directory.GetFiles(sourcePath); // Copy the files and overwrite destination files if they already exist. foreach (string s in files) { // Use static Path methods to extract only the file name from the path. var fileName = System.IO.Path.GetFileName(s); var destFile = System.IO.Path.Combine(targetPath, fileName); System.IO.File.Copy(s, destFile, true); } } else { Console.WriteLine("Source path does not exist!"); } } es geht leider nur so (siehe oben).
-
public void kopieren() { string[] files = Directory.GetFiles("E:/unity projekte/xml_files/", "*.xml", SearchOption.AllDirectories); for (int i = 0; i < files.Length; i++) { if (File.Exists(files[i])) { string targetCachePath = @"E:/unity projekte/New Unity Project40.01 - Kopie/xml"; if (System.IO.Directory.Exists(targetCachePath)) { FileUtil.DeleteFileOrDirectory(targetCachePath); } FileUtil.CopyFileOrDirectory(targetCachePath, "E:/unity projekte/New Unity Project40.01 - Kopie/"); } else { Debug.Log("Datei nicht gefunden!"); } } } IOException: Failed to Copy File / Directory from 'E:/unity projekte/New Unity Project40.01 - Kopie/xml' to 'E:/unity projekte/New Unity Project40.01 - Kopie/': destination path already exists. ...kommt immer noch dieselbe Fehlermeldung! Kann man nicht in ein bestehendes Verzeichnis kopieren mit dem befehl FileUti.CopyFileOrDirectory()?