peachplayer
Members-
Gesamte Inhalte
271 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
3
peachplayer hat zuletzt am 29. Dezember 2023 gewonnen
peachplayer hat die beliebtesten Inhalte erstellt!
peachplayer's Achievements
Advanced Member (3/3)
7
Ansehen in der Community
-
hallo Leute Ich konnte das Problem inzwischen selber lösen. Der Fehler war in der Hilfsfunktion, welche gleiche Parzellennamen finden sollte. Jetzt siehts so aus... Gruss, peachplayer
-
hallo Leute Kann mir jemand helfen? Ich möchte einen Fruchtfolgeplan machen und verwende dazu folgendes Script: if (graphData.Count > 10) { gap = 10.0f / graphData.Count; } float xIncrement = gap; Vector3 startpoint = Vector3.zero; int i = 0; while (dataCount < graphData.Count) { Vector3 endpoint = new Vector3(graphData[dataCount].income * 0.01f, xIncrement + 8f, 0.96f); startpoint = new Vector3(0, endpoint.y, 0.96f); // pointer is an empty gameObject, i made a prefab of it and attach it in the inspector GameObject p = Instantiate(pointer, new Vector3(startpoint.x, startpoint.y, 0.97f), Quaternion.identity) as GameObject; p.transform.parent = holder.transform; // i made a prefab of it and attach it in the inspector GameObject lineObj = Instantiate(linerenderer, transform.position, Quaternion.identity) as GameObject; lineObj.transform.parent = holder.transform; lineObj.name = dataCount.ToString(); LineRenderer lineRenderer = lineObj.GetComponent<LineRenderer>(); lineRenderer.material = mat; lineRenderer.SetWidth(0.15F, 0.15F); lineRenderer.SetVertexCount(2); while (p.transform.position.y < endpoint.y) { p.transform.Translate(Vector3.up * Time.deltaTime * 8, Space.World); lineRenderer.SetPosition(0, startpoint); lineRenderer.SetPosition(1, p.transform.position); } lineRenderer.SetPosition(0, startpoint); lineRenderer.SetPosition(1, endpoint); p.transform.position = endpoint; startpoint = endpoint; dataCount++; if (FindParzellenname(graphData[dataCount].Parzellenname) == null) xIncrement = 0f; else if (FindParzellenname(graphData[dataCount].Parzellenname) != null) xIncrement += gap; Leider werden die Linien bei gleichen Parzellennamen nicht fortgesetzt, sondern übereinander dargestellt. Weiss jemand weshalb? Gruss, peachplayer
-
danke für den Tipp! Debug.Log() gibt den Datumswert 0 heraus, also stimmt eigentlich die Berechnung der Datumsdifferenz!
-
Hallo Leute Weiss jemand wie man die Datumsdifferenz in unity berechnen kann? Habs wie folgt probiert: private float Finddifference(string Maschinennamen) { foreach (DurationUnit item in durationList1) { if (item.Kultur == FindKultur(item.Kultur, Maschinennamen)) { // int duration = item.ernten.DayOfYear - Findsäen(item.Parzellenname); TimeSpan Diff_dates = item.ernten - (Findsäen(item.Parzellenname)); var days = Convert.ToSingle(Diff_dates.Days); return days; } } return 0f; } private DateTime Findsäen(string Maschinennamen) { int i = 0; foreach (DurationUnit Inventory1Item in durationList1) { if (Inventory1Item.Parzellenname == Maschinennamen) Debug.Log(Inventory1Item.Säen); DateTime date_säen = Inventory1Item.Säen; return date_säen; i++; } return DateTime.Now; } Leider kommt ein viel zu hoher Wert heraus(738776). Gruss peachplayer
-
inputfield kann nur ganzzahlige werte annehmen
Thema antwortete auf peachplayers peachplayer in: Scripting
Den Content Type auf decimal änderen bringt leider auch nichts. -
inputfield kann nur ganzzahlige werte annehmen
Thema antwortete auf peachplayers peachplayer in: Scripting
-
inputfield kann nur ganzzahlige werte annehmen
Thema antwortete auf peachplayers peachplayer in: Scripting
leider kommt die Fehlermeldung immer noch auch wenn ich den Punkt als Trennzeichen eingebe. -
Hallo Leute Weiss jemand wieso ein Inputfield nur ganzzahlige Werte annehmen kann? Bei der Eingabe von Fliesskomazahlen kommt eine Fehlermeldung(siehe unten). Gruss peachplayer Pflanzen ZufallsEintrag() { float Preis = 0.0f; Index_pfl = 0; int i = 0; int index3 = dropdown3.value; int index1 = dropdown1.value; int index2 = dropdown2.value; string Jahr_auswahl = dropdown3.options[index3].text; float Menge = 0.0f; dataXml = XElement.Load("E://unity projekte/New Unity Project40.01 - Kopie/Pflanzen.xml"); IEnumerable<XElement> data = dataXml.Elements(); foreach (XElement item in data) { string Parzellenname = dropdown1.options[index1].text; string Pflanzenschutzmittel = dropdown2.options[index2].text; string Kultur = FindKultur(Parzellenname); float Fläche = FindFläche(Parzellenname); int n; string number = MengeEingabe.text; bool result = Int32.TryParse(number, out n); if ((MengeEingabe.text == "") || (result == false)) popupMessage.Open("Texture1", "bitte einen gültigen Wert eingeben!"); Menge = float.Parse(MengeEingabe.text); int Nummer = int.Parse(item.Element("Nummer").Value); DateTime Datum1 = DateTime.Parse(item.Element("Datum").Value); float Kosten = Menge * 0.01f * Preis_berechnen(Pflanzenschutzmittel); Debug.Log(Index_pfl); if (DatumEingabe.text == "") popupMessage.Open("Texture1", "bitte ein gültiges Datum eingeben!"); //if (DatumEingabe.text == "") // Datum = System.DateTime.Now.ToString("dd.MM.yyyy"); DateTime Datum = DateTime.ParseExact(DatumEingabe.text, @"dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture); Pflanzen neuerEintrag = new Pflanzen(); neuerEintrag.Parzellenname = Parzellenname; neuerEintrag.Nummer = Nummer; neuerEintrag.Kultur = FindKultur(Parzellenname); neuerEintrag.Pflschutzmittel = Pflanzenschutzmittel; neuerEintrag.Fläche = Fläche; neuerEintrag.Menge = Menge * Fläche * 0.01f; neuerEintrag.Datum = Datum; if (Datum1.Year == 2018 + index3) { liste.Add(neuerEintrag = new Pflanzen { Nummer = Nummer, Parzellenname = Parzellenname, Menge = Menge, Kosten = Fläche * Menge * 80.0f * 0.01f, Fläche = Fläche, Pflschutzmittel = Pflanzenschutzmittel, Kultur = Kultur, Datum = Datum }); Debug.Log("index2 = " + index1 + "i = " + i); return neuerEintrag; } i++; } return null; } Fehlermeldung: "FormatException: Input string was not in a correct format."
-
wie positioniert man Text in einem Canvas via script?
Thema antwortete auf peachplayers peachplayer in: Scripting
Habs jetzt mit einem Panel versucht: ArrayList arrayList = new ArrayList(); UnityEngine.UI.Text[] allObject = (UnityEngine.UI.Text[])FindObjectsOfType(typeof(UnityEngine.UI.Text)); foreach (UnityEngine.UI.Text item in allObject) { UnityEngine.UI.Text go = item; switch (go.name) { case "Text_Flurname": arrayList.Add(go); break; case "Text_Feldarbeiten": arrayList.Add(go); break; case "Text_Kosten": arrayList.Add(go); break; case "Text_fläche": arrayList.Add(go); break; case "Text_Kultur": arrayList.Add(go); break; case "Text_Datum": arrayList.Add(go); break; case "Text_nr": arrayList.Add(go); break; } } var canvas_transform = panel.transform; int i = 0; foreach (UnityEngine.UI.Text go in arrayList) { Debug.Log(go.name); // Provide Text position and size using RectTransform. RectTransform AnzeigeRect = go.GetComponent<RectTransform>(); go.transform.SetParent(canvas_transform); canvas_transform.GetComponent<RectTransform>().anchoredPosition = new Vector2(200 + i, 200); i = i + 50; } Leider wird der Text nicht richtig positioniert. Gruss, peachplayer -
wie positioniert man Text in einem Canvas via script?
ein Thema hat peachplayer erstellt in: Scripting
Hallo Leute Weiss jemand wie man Textfelder in einem Canvas via Script anordnen kann. Habs wie folgt probiert: void Start() { ArrayList arrayList = new ArrayList(); UnityEngine.Object[] allObject = (UnityEngine.UI.Text[])FindObjectsOfType(typeof(UnityEngine.UI.Text)); foreach (UnityEngine.UI.Text item in allObject) { UnityEngine.UI.Text go = item; if (go != null) { arrayList.Add(go); } } foreach (UnityEngine.UI.Text go in arrayList) { Debug.Log(go.name); RectTransform rectTransform; rectTransform = go.GetComponent<RectTransform>(); rectTransform.localPosition = new Vector3(0 + i, 0, 0); rectTransform.sizeDelta = new Vector2(200, 200); go.GetComponent<RectTransform>().localPosition = new Vector2(200 + i, 500); i += 50; } } Gruss, peachplayer -
Hallo Leute Weiss jemand wie man die Auflösung bei Unity im Edit-Modus ändern kann via script? Mit der Anweisung Screen.SetResolution(800, 600, true) zB. geht es leider nicht, d.h. die Auflösung ändert immer wieder zu 2560x1440 also das Maximum. Gruss, peachplayer
-
herzlichen dank für danke für die tipps! Es sieht schon fast richtig, aus. D.h. der Kreis ist zu 100% gefüllt, jedoch überlappen sich noch 2 Kreis-Segmente(siehe Abb.) Gruss peachplayer public void Setvalues(List<float> valuesToSet) { float restwert = 0.0f; float totalvalues = 1.0f; for (int i = 0; i < imagesPieChart.Length; i++) { totalvalues -= restwert; Debug.Log("i= " + i + "totalvalues=" + totalvalues * 100); restwert = FindPercentage(valuesToSet, i); imagesPieChart[i].fillAmount = totalvalues; }
-
die Exception Fehlermeldung hat einen anderen Grund und hat nichts damit zu tun, dass eine Lücke beim Diagramm angezeigt wird (siehe Abb.) Es sind 5 Datenelemente die zusammen leider weniger als einen ganzen Kreis ergeben. Hat das etwas mit der Anweisung Fill.Origin zu tun? Da hierbei nur 4 verschiedene Werte(top, bottom, right u. left) möglich sind wird 1 Platz wohl doppelt besetzt.
-
danke für die tipps! Leider weiss ich immer noch nicht wo der fehler liegt. Der Index ist nicht grösser als die Einträge von ValueToSet!
-
Hallo Leute Ich versuche ein Kreisdiagramm zu machen. Leider klappt es nicht ganz, da es bei der Darstellung eine Lücke gibt(sieh Abb.). Kann mir jemand helfen? Ich benütze folgenden Code ¨using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; public class PieCharts : MonoBehaviour { // Start is called before the first frame update public Image[] imagesPieChart; public float[] values; public List<Parzelle> liste1; public string KulturenAusgabe; public Text TextKulturenAusgabe; private void Awake() { liste1 = MyXML.DeserializeFromXML<Parzelle>(".\\Parzelle.xml"); } void Start() { GenerateRandomPieChart(); } public void Setvalues(List<float> valuesToSet) { float totalvalues = 0; for(int i=0; i < imagesPieChart.Length; i++) { totalvalues = FindPercentage(valuesToSet, i); Debug.Log("prozent= " + totalvalues + i); imagesPieChart[i].fillAmount = totalvalues; } } public void GenerateRandomPieChart() { List<float> valueList = new List<float>(); foreach (Parzelle item in liste1) { if (item.Datum.Year == 2023 && ) { valueList.Add(item.Fläche); KulturenAusgabe += item.Parzellenname + " " + item.Kultur + "\n"; } TextKulturenAusgabe.text = KulturenAusgabe; } foreach(float item in valueList) { Debug.Log(item); } Debug.Log(valueList.Count); Setvalues(valueList); } private float FindPercentage(List<float> valuesToSet, int index) { float totalAmount = 0; for (int i=0; i < valuesToSet.Count; i++) { totalAmount += valuesToSet[i]; } return valuesToSet[index] / totalAmount; } // Update is called once per frame void Update() { } } Gruss, peachplayer