Jump to content
Unity Insider Forum

Elharter

Members
  • Content Count

    230
  • Joined

  • Last visited

  • Days Won

    5

Elharter last won the day on September 12

Elharter had the most liked content!

Community Reputation

21 Excellent

About Elharter

  • Rank
    Advanced Member
  • Birthday 07/17/1981

Profile Information

  • Gender
    Male
  • Location
    Vienna

Recent Profile Visitors

1,312 profile views
  1. Ich konnte es beheben....hab das gesamte Script geleert und Zeile für Zeile neu aufgebaut und nach jedem größeren Block, gestartet und kontrolliert was passiert. Ich weiß bis jetzt nicht was der Fehler war, aber jetzt gehts. Hab im Zuge dessen gleich den gesamten Code aufgeräumt und neu sortiert. Naja.....
  2. Nein....lade die Scene nicht neu. Lege ich ein neues File an funktioniert alles. Auch in einem Script das ich zuvor verwende funktioniert alles. Nur in diesem einen nicht.....habe es 10x durchforstet, es gibt kein break, kein yield, nichts......
  3. Hallo. kämpfe seit 8h mit einem Problem und mag nicht mehr. Photon called "onJoinedroom" oder "onCreatedRoom".....das SupportLog von Photon sagt mir auch dass das passiert. aber mein script will es nicht ausführen.... ich verzweifle MonoBehaviourPunCallbacks ist gesetzt. Jemand eine Idee?
  4. Danke für deine ausführliche Antwort. Ich glaube das schaffe ich jetzt so auf Anhieb nicht. Mein Zugang wäre eher auf Pixel-Ebene gewesen. Die Textur und die Farbe der Pixel kann ich eindeutig auslesen und zuordnen (Beton, Gras, Sand usw) da gibt es keinerlei Überschneidungen da die Farben eindeutig sind pro Pixel. Jetzt hab ich mehr an eine Art "virtuellen" Brush/Pinsel gedacht der Bereiche ausliest und mit einer echten, ordentlichen Textur überschreibt oder überlagert und die Randbereiche wie Kanten oder Linien entsprechend abschneidet. Oder ich zeichne die Textur nach Priorität....zb: 1. Wiese, überlagern mit neuer Texture 2. Sand Und am Ende zeichne ich die vorhandene Straße über alles drüber.... Mit Shade und Co habe ich bis dato nichts gemacht. lg
  5. Stimmt - habe ich vergessen *closed hier*
  6. Hallo, hat jemand eine Idee wie ich von einer Splatprototyp-Texture, also einer Grafik die auf einem Terrain liegt, Pixel SO auslesen kann dass ich sie a) überschreiben b) überlagern kann mit einer anderen/neueren/besseren Texture? Hab da irgendwie keinerlei Zugang oder Idee. Zb alle grüne Pixel mit einer neuen Texture die ich mitlade die eben echter nach Gras aussieht. Problem ist, ich kann es eben nicht Pixel für Pixel tauschen sondern müsste es InCode entsprechend immer bis zu den Randlinien "pauschal" überschreiben. danke
  7. Aus pers. Interesse: also zb bei Patronenkugeln einer Waffe?
  8. Kannst ja gerne mal reinsehen (als Alphatester) wenn dich Top-down arcade racing game interessiert :p *ot*
  9. Etwas aufwändig das zu erklären. Es ist ein "offenes" Track-File-Format wofür es um die 5-15 Trackeditoren gibt, die alle das selbe tun am Ende. Und hierbei ist es eben so dass die Strecke 512x512 Pixel gross ist (also in einem Quadrat gefahren wird). Und je nach Skalierung alles eben kleiner wird oder größer wird. Hier ein Beispiel - Worldsize 120: Und hier das selbe mit Worldsize - 255: Ich muss das Auto also verkleinern...... Inzwischen habe ich es aber hinbekommen. Ich habe einfach alle Werte (Mass, Suspension, Angular Drag, Drag) von allen Komponenten in der Relation angepasst zur Worldsize - scheint zu funktionieren. lg
  10. Die Strecken werden außerhalb von Unity gebaut mit einem Trackeditor, sämtliche Settings speichere ich binär. Bei der Erzeugung findet sich eine "Worldscale" die alles skaliert innerhalb der Welt/Strecke. Funktioniert alles tadellos. Verwende ich Worldscale=100 (also 1:1) ändere ich nichts. Verwende ich 120, muss ich um 20% vergrössern. Das erledige ich beim instanzieren aller Objekte. Der logische Vorgang ist wie folgt: 1. Strecke wird geladen (Größe unbekannt, irgendwas zwischen 0-100% die von mir natürlich definiert sind, aber ich gebe Sie hier jetzt der Einfachheit in % an) 2. Strecke/Track/Map hat eine Worldsize von 40% bspw. 3. Car instanzieren (dieses ist designed, gezeichnet und gecoded und getestet auf eine Worldsize von 80% weil das die gängigste Größe ist) Jetzt muss ich das Auto entsprechend der Strecke auf 40% skalieren, so dass das Auto wieder zur Strecke passt vom Verhältnis. Die Strecke wird vom Spieler per Trackeditor gebaut, Worldsize ist dabei variable und erst zum Zeitpunkt des "Ladens" bekannt. Jetzt klarer?
  11. behoben public void UpdateQualifiyingScoreBoard() { QualiPanelText.text = "Quali-Drivers: "+cntOnlinePlayersLoop+"\n"; foreach (Player p in PhotonNetwork.PlayerList) { //QualiPanelText.text += "\n" + p.NickName+":"+p.GetBestLap(); // Insert Listentrys the first time if (qBestLapOrderList.Count < PhotonNetwork.PlayerList.Length) { qBestLapOrderList.Add(new qBestLapOrder(p.NickName, p.GetBestLap())); } for (int cnt = 0; cnt < qBestLapOrderList.Count; cnt++) { // Update List Entry everytime after first insert if(qBestLapOrderList[cnt].qNickname == p.NickName) { qBestLapOrderList[cnt].qBestLap = p.GetBestLap(); } } //qBestLapOrderList = qBestLapOrderList.OrderBy(qBestLapOrderList.).ToList(); //qBestLapOrderList.Sort(SortByBestLap); qBestLapOrderList.Sort((l1, l2) => l1.qBestLap.CompareTo(l2.qBestLap)); } for (int cnt = 0; cnt < qBestLapOrderList.Count; cnt++) { float tmpbestlap = qBestLapOrderList[cnt].qBestLap; int minutes_b = Mathf.FloorToInt(tmpbestlap / 60F); int seconds_b = Mathf.FloorToInt(tmpbestlap - minutes_b * 60); int milliseconds_b = Mathf.FloorToInt((tmpbestlap - seconds_b) * 100); string niceTime_b = string.Format("{0:0}:{1:00}:{2:00}", minutes_b, seconds_b, milliseconds_b); if (qBestLapOrderList[cnt].qBestLap > 1) { QualiPanelText.text += "P" + (cnt + 1) + "." + qBestLapOrderList[cnt].qNickname + "(" + niceTime_b + ")\n"; } } }
  12. Ich instanziere in meinem Spiel um die 1.000 Objekte vor dem Laden und bewege mich da bei etwa 1-3 Sekunden.....+ Zuweisungen genauso wie du es benötigst. Beim Ladevorgang ist das nichts wofür dich ein Benutzer je anklagen wird
  13. Hallo, ich hänge, kann mir bitte jemand weiter helfen: public void UpdateQualifiyingScoreBoard() { QualiPanelText.text = "Online-Players:"+cntOnlinePlayersLoop+"\n"; foreach (Player p in PhotonNetwork.PlayerList) { if (qBestLapOrderList.Count < PhotonNetwork.PlayerList.Length) { qBestLapOrderList.Add(new qBestLapOrder(p.NickName, p.GetBestLap())); qBestLapOrderList.Sort(SortByBestLap); } for (int cnt = 0; cnt < qBestLapOrderList.Count; cnt++) { qBestLapOrderList[cnt].qBestLap = p.GetBestLap(); float tmpbestlap = p.GetBestLap(); int minutes_b = Mathf.FloorToInt(tmpbestlap / 60F); int seconds_b = Mathf.FloorToInt(tmpbestlap - minutes_b * 60); int milliseconds_b = Mathf.FloorToInt((tmpbestlap - seconds_b) * 100); string niceTime_b = string.Format("{0:0}:{1:00}:{2:00}", minutes_b, seconds_b, milliseconds_b); QualiPanelText.text += qBestLapOrderList[cnt].qNickname + ":" + niceTime_b; } } } public static int SortByBestLap(qBestLapOrder p1, qBestLapOrder p2) { return p1.qBestLap.CompareTo(p2.qBestLap); } Ich raff die CompareTo Methode nicht ganz..... ich will 1-12 Spieler sortieren. Kurz erklärt: 1,2,3 oder 12 Spieler fahren ein Qualifiying. Ich sende über CustomProperties die Bestlap und verarbeite diese. Somit verfüge ich zentral über die BestLap jedes gejointen Fahrers. Nun möchte ich diese Liste sortieren. Schnellster ganz oben, langsamster ganz unten. Passiert aber nicht. Was mache ich falsch? danke
×
×
  • Create New...