Jump to content
Unity Insider Forum

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!

Letzte Besucher des Profils

2.839 Profilaufrufe

peachplayer's Achievements

Advanced Member

Advanced Member (3/3)

7

Ansehen in der Community

  1. 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
  2. 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
  3. danke für den Tipp! Debug.Log() gibt den Datumswert 0 heraus, also stimmt eigentlich die Berechnung der Datumsdifferenz!
  4. 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
  5. Den Content Type auf decimal änderen bringt leider auch nichts.
  6. leider kommt die Fehlermeldung immer noch auch wenn ich den Punkt als Trennzeichen eingebe.
  7. 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."
  8. 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
  9. 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
  10. peachplayer

    Auflösung ändern

    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
  11. 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; }
  12. 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.
  13. 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!
  14. 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
×
×
  • Neu erstellen...