Jump to content
Unity Insider Forum

peachplayer

Members
  • Content Count

    147
  • Joined

  • Last visited

  • Days Won

    1

peachplayer last won the day on October 31 2016

peachplayer had the most liked content!

Community Reputation

4 Neutral

About peachplayer

  • Rank
    Advanced Member

Recent Profile Visitors

1,688 profile views
  1. IEnumerator BarGraph(List<GraphData> gd) { float gap = 1; // X axis starts from 0 to 4 so according to my logic i have to check if no. of data // is > 4 than we should divide the lenght of x axis with the data count, this will // give us the gap between bars that we need to keep. if (gd.Count > 4) { gap = 30.0f / gd.Count; } float xIncrement = gap; int dataCount = 0; Vector3 startpoint = Vector3.zero; while (dataCount < gd.Count) { int i = dataCount; Vector3 endpoint = new Vector3(xIncrement, gd[dataCount].income, 0.96f); startpoint = new Vector3(endpoint.x, 0, 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; // linerenderer is an empty gameObject with Line Renderer Component Attach to it, // i made a prefab of it and attach it in the inspector GameObject test1 = Instantiate(linerenderer, transform.position, Quaternion.identity) as GameObject; test1.transform.parent = holder.transform; test1.name = dataCount.ToString(); LineRenderer lineRenderer = test1.GetComponent<LineRenderer>(); lineRenderer.material = mat; lineRenderer.SetWidth(0.30F, 0.30F); 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); yield return null; } lineRenderer.SetPosition(0, startpoint); lineRenderer.SetPosition(1, endpoint); p.transform.position = endpoint; var parzellen2 = gd.GroupBy(item => item.Parzname); foreach (var parzelle1 in parzellen2) { addScoreText.text = parzelle1.Key; addScoreText.transform.position = Camera.main.WorldToScreenPoint(lineRenderer.transform.position); } startpoint = endpoint; dataCount++; xIncrement += gap; yield return null; } } und so sieht die ganze Coroutine aus, welche die Balkendiagramme zeichnen sollte. Leider erscheint noch kein Beschriftungs-text. Gruss, peachplayer
  2. danke für den Tipp. Auf welches Objekt bezieht sich dann transform.position? Gruss, peachplayer
  3. Hallo Leute ich möchte eine Art Balkendiagramm mit Unity erstellen. Die rechteckigen Balken habe ich grafisch schon hingekriegt, jedoch fehlen mir jetzt noch die Beschriftungen für die zugehörigen Werte. Weiss jemand wie man einen Text an ein GameObjekt binden kann? Habs mit folgender Funktion probiert: GameObject CreateText(LineRenderer canvas_transform, float x, float y, string text_to_print) { GameObject UItextGO = new GameObject("Text2"); RectTransform trans = UItextGO.AddComponent<RectTransform>(); trans.anchoredPosition = new Vector2(x, y); Text text = UItextGO.AddComponent<Text>(); text.text = text_to_print; return UItextGO; } Gruss, peachplayer
  4. Hallo Also ich habe sehr gute Erfahrungen mit dem Speicherformat .XML gemacht. Die gespeicherten Daten können beliebig editiert werden. Die Datenabfrage funktioniert dann via Linq. Gruss, peachplayer
  5. Ich konnte das Problem selber lösen! Ich musste bloss die obige Funktion in die "Anzeige"-Funktion integrieren, denn da wird ja jedesmal der Index neu gesetzt, sonst bleibt er immer gleich! Gruss, peachplayer
  6. Hallo Leute Ich habe folgendes Problem: wenn ich den Index des Dropdown-Objektes abfragen will (index3), kommt immer nur der 0-te Wert heraus, sodass immer nur das 1.Element des Dropdown-Feldes heraus kommt. Woran könnte das liegen? Die Index-Werte sollten doch auch dynamisch abgefragt werden können? void ListeFuellen() { //get the selected index int index3 = dropdown3.GetComponent<Dropdown>().value; float Menge; dataXml = XElement.Load(".\\Dünger.xml"); IEnumerable<XElement> data = dataXml.Elements(); foreach (XElement item in data) { if ((float)item.Element("Fläche") != 0) { Debug.Log(item.Element("Parzellenname").Value); Debug.Log(item.Element("Menge").Value); Debug.Log(item.Element("Düngersorte").Value); // Code der pro Parzellenname ausgeführt wird // parzelle enthält alle Einträge der jeweiligen Parzelle string Düngersorte = item.Element("Düngersorte").Value; Debug.Log(Düngersorte); Menge = (float)item.Element("Menge"); Debug.Log(Menge); Parzellenname = item.Element("Parzellenname").Value; String value = item.Element("Datum").Value; int startIndex = 0; int length = 4; String substring = value.Substring(startIndex, length); switch (Düngersorte) { case "Ammonsalpeter": N = 27.0f * Menge * 0.01f; P = 0.0f * Menge * 0.01f; K = 0.0f * Menge * 0.01f; Mg = 2.50f * Menge * 0.01f; break; case "Ceral": N = 0.0f * Menge * 0.01f; P = 16.0f * Menge * 0.01f; K = 32.0f * Menge * 0.01f; Mg = 0.0f * Menge * 0.01f; break; case "Suplesan": N = 20.0f * Menge * 0.01f; P = 8.0f * Menge * 0.01f; K = 8.0f * Menge * 0.01f; Mg = 02.0f * Menge * 0.01f; break; case "Vernal plus": N = 20.0f * Menge * 0.01f; P = 6.0f * Menge * 0.01f; K = 6.0f * Menge * 0.01f; Mg = 02.0f * Menge * 0.01f; break; } DüngerEintrag_NPK eintrag1 = new DüngerEintrag_NPK(); eintrag1.N = N; eintrag1.P = P; eintrag1.K = K; eintrag1.Mg = Mg; eintrag1.Parzellenname = Parzellenname; eintrag1.Datum = DateTime.Parse(value); if (substring == dropdown3.options[index3].text) liste1.Add(eintrag1); } } }
  7. danke für die ausführliche Antwort. Der Fehler lag tatsächlich in einem anderen Script. Jetzt läuft eigentlich alles. Gruss, peachplayer
  8. Danke für den Hinweis! In folgender Zeile bekomme ich die Fehlermeldung: if (dropdown1.options[index1].text == Jahr_auswahl) und zwar einen Index-Out of Range Fehler. Leider weiss ich nicht wie ich das korrigieren kann.
  9. Hallo Leute Weiss jemand wieso ich beim folgenden Code einen Null-Wert bei der Spalte Erlös erhalte? Die anderen Spalten beim Output haben alle keine Null-Werte. Gruss, peachplayer void ListeAnzeigen() { string NummerAusgabe = ""; string ParzellennameAusgabe = ""; string KostenAusgabe = ""; float Kostentotal = 0.0f; float Kostentotal_pf = 0.0f; float Kostensumme = 0.0f; float ErlösAusgabe_total = 0.0f; float parzellenSumme1 = 0.0f; int i = 0; int index1 = dropdown1.value; var parzellen2 = liste1.GroupBy(item => item.Datum.Year); foreach (var parzelle1 in parzellen2) { string Jahr_auswahl = parzelle1.Key.ToString(); if (dropdown1.options[index1].text == Jahr_auswahl) { var parzellen1 = liste1.GroupBy(item => item.GetParzellenname()); foreach (var parzelle in parzellen1) { // Code der pro Parzellenname ausgeführt wird // parzelle enthält alle Einträge der jeweiligen Parzelle //string Jahr_auswahl = liste[i].Datum.Year.ToString(); string parzellenName = parzelle.Key; int Nummer = parzelle.Sum(item => item.Nummer); NummerAusgabe += parzelle.Sum(item => item.Nummer) + "\n"; ParzellennameAusgabe += parzellenName + "\n"; ParzellennameAnzeige.text = ParzellennameAusgabe; float parzellenSumme = parzelle.Sum(item => Mathf.Round(item.Kostensumme() * 1.00f)); IEnumerable<Kosten> result = parzelle.Where(c => c.Fläche > 0 && c.Erlös >0); IEnumerable<Kosten> result2 = parzelle.Where(c => c.Erlös > 0 && c.Fläche >0 && c.Kost_d >0); //float Fläche2 = parzelle.Sum(item => Mathf.Round(item.Fläche * 1 / Nummer)); float Summe1 = parzelle.Sum(item => Mathf.Round(item.Erlös)); KostenAusgabe += parzellenSumme + "\n"; KostenAnzeige.text = KostenAusgabe; Kostentotal += parzellenSumme; //Erlös = parzelle.Sum(item => Mathf.Round(item.Erlös * 0.50f)); var result_erlös = result2.GroupBy(item1 => item1.Erlös); foreach (var item in result_erlös) { if (item.Key > 0) { Erlös = item.Key; ErlösAusgabe += Erlös + "\n"; ErlösAnzeige.text = ErlösAusgabe; ErlösAusgabe_total += Erlös; DBAusgabe += Erlös - parzellenSumme + "\n"; } } var result_fläche = result.GroupBy(item1 => item1.Fläche); foreach (var item in result_fläche) { DBAusgabe_ha += Mathf.Round((Erlös - parzellenSumme) * 100.0f / (item.Key)) + "\n"; DBAnzeige_einzeln_proha.text = DBAusgabe_ha; DBAnzeige_einzeln.text = DBAusgabe; } } //StartCoroutine(SaveData(parzellenName, Erlös, parzellenSumme, (Erlös - parzellenSumme))); } } //totaleKostenAnzeige.text = Kostensumme.ToString(); if (ParzellennameAusgabe != "" && Erlös >0) { NummerAnzeige.text = NummerAusgabe; totaleKostenAnzeige.text = "Totale Kosten = " + (Kostentotal); PlayerPrefs.SetFloat("Kosten_total", Kostentotal); //totaleKostenAnzeige.text = "Totale Kosten = " + Kostentotal; DBAnzeige.text = "DB total = " + (ErlösAusgabe_total - Kostentotal).ToString(); totalerErlösAnzeige.text = "Totaler Erlös = " + ErlösAusgabe_total; Kassenbestand = (ErlösAusgabe_total - Kostentotal) + PlayerPrefs.GetFloat("Kassenbestand"); PlayerPrefs.SetFloat("Kassenbestand", Kassenbestand); } }
  10. Habs herausgefunden, wo der Fehler lag. Die Szene wurde nicht richtig gerendert.
  11. Habe gerade bemerkt, dass keine .asset-datei vorhanden ist nach dem rendern. Woran könnte das liegen?
  12. Danke für den Tipp! Meine Game-View sieht folgendermassen aus: Leider dreht sich das Container-Schiff nur um die eigene Achse bei Mausklick...Die World-map und die Plane wurden separat gerendert. Woran könnte das liegen? Das Script sieht so aus: Gruss, peachplayer // MoveToClickPoint.cs using UnityEngine; using UnityEngine.AI; public class MoveToClickPoint : MonoBehaviour { public NavMeshAgent agent; public Camera camera; void Start() { agent = GetComponent<NavMeshAgent>(); } void Update() { if (Input.GetMouseButtonDown(0)) { RaycastHit hit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 1000)) { agent.destination = hit.point; } } } }
  13. Habe eine 2-d Weltkarte mit 170 verschiedenen Mesh im Asset Store gefunden, die Karte ist also fix!
  14. danke für die Antwort. Die 2-d-Weltkarte soll vorgegeben sein von Unity. Gruss, peachplayer
  15. Hallo Leute Weiss jemand, ob es ein Asset gibt, womit man eine 2-d-Weltkarte erstellen kann, wo man via Seeweg Schiffe navigieren kann? Danke für eine Antwort! Gruss, peachplayer
×
×
  • Create New...