Jump to content
Unity Insider Forum
  • Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

Elharter

Members
  • Content count

    159
  • Joined

  • Last visited

  • Days Won

    2

Elharter last won the day on June 24 2016

Elharter had the most liked content!

Community Reputation

16 Gut

About Elharter

  • Rank
    Advanced Member

Recent Profile Visitors

726 profile views
  1. Multiplayer Spiel

    Es steht und fällt alles in der Tat mit: a) Anzahl der Spieler b ) Häufigkeit der Updates c) Größe der Daten die übertragen wird d) wer berechnet was Man kann sich natürlich schon behelfen und schauen dass bestmöglich viel am Client berechnet wird und nur Positions-Daten über das Netz gesynct werden müssen. Nur dazu muss man sich eben über sein Konzept im klaren werden und wissen was man will. Es gibt dazu 1000 Ansätze, Lösungen und Möglichkeiten. Ein kleines Beispiel: 200 Spieler auf einem Server. Eine Map die riesig ist. Es ist hier nicht notwendig alle 200 Spieler ständig zu syncen... wozu auch? Ich will ja nur wissen was in meiner nähe passiert und nicht was alle 200 Spieler tun, die ich gar nicht sehe. Des weiteren ist immer relevant WAS ich syncen will. Was MUSS sofort, instant, jetzt und gleich gesynct werden und was nicht? Ein Inventar, ein neuer Highscore oder ähnliches brauche ich auf Abruf. Hingegen muss eine Bewegung im direkten Kampf natürlich bestmöglich live und ohne lag passieren. lg
  2. Highscore-System mit 2 Spielern und 10 Runden

    Hallo, deine Anfrage ist viel zu allgemein und undurchsichtig. Was ist für dich ein Highscore-System? Was soll es können? Wie möchtest du die Daten ablegen? Wann und wielange müssen die Daten abrufbar sein? Lokal oder im Internet? Aus welchen Daten besteht ein Highscore? Helfen tut dir vielleicht das hier: lg
  3. Hallo, folgende Anforderung habe ich: ich möchte rund um ein Terrain eine Wand aufstellen. Diese soll aber der Terrain Höhe folgen. 4 Walls rund um das Terrain, habe ich per Script, geschafft. Passt sich an, läuft. Natürlich kann ich die Wand auch "erhöhen" - aber das will ich nicht. Ich hätte gerne an den Stellen wo das Terrain erhoben ist - dynamisch angepasst eine Wand. Wie könnte ich das lösen? Mir fehlt da zurzeit der "Anfang". danke
  4. Problem mit Heightmap / Terrain

    Danke! Ich denke davon hat auch die Nachwelt jetzt etwas
  5. Problem mit Heightmap / Terrain

    Ich habs anders gelöst: // avoid Border Fix - copy last line/column to 64 to extend it for 1 line/column for (int x = 64; x < 65; x++) { for (int y = 0; y < 65; y++) { heights[x, y] = heights[x - 1, Mathf.Clamp(y - 1, 0, 64)]; } } for (int y = 64; y < 65; y++) { for (int x = 0; x < 65; x++) { heights[x, y] = heights[Mathf.Clamp(x - 1, 0, 64), y - 1]; } }
  6. Problem mit Heightmap / Terrain

    Yessssssss! Das ist es. Array auf 65 erweitert und die letzte Spalte/Zeile einfach jeweils kopiert. Tadaaaaaaa Rahmen weg. Danke dir Zer0cool !
  7. Problem mit Heightmap / Terrain

    Okay ich glaube ich habe es eingrenzen können. Das Array hat 64x64 Felder also 4069 einträge. Alle sind gefüllt und >0. Daran scheint es also nicht zu liegen. Befülle ich die Hmap mit terrain.terrainData.SetHeightsDelayLOD(0, 0, data.heights); und lese es sofort danach wieder aus mit: int xRes = terrain.terrainData.heightmapWidth; int yRes = terrain.terrainData.heightmapHeight; Debug.LogError("Heightmap x:" + xRes); Debug.LogError("Heightmap y:" + yRes); Hat die Hmap aufeinmal 65x65 ....ich denke das ist der Fehler. Bloss wieso ?
  8. Problem mit Heightmap / Terrain

    Auf dem Bild sieht man den Rahmen links und unten gut..... Zu deiner Antwort: byte[] data = File.ReadAllBytes(filePath); in Data lese ich alle Bytes des "Trackfiles" - das einem gewissen Format folgt. Danach kommt: // Heightmap int heightMapStart = 20 + landMapLength * 2; int heightMapLength = int.Parse(data[20 + landMapLength * 2 + 1].ToString("X2") + data[20 + landMapLength * 2].ToString("X2"), System.Globalization.NumberStyles.HexNumber); int index = heightMapStart + 2; Hier wird festgelegt an welcher Stelle begonnen wird die Bytes zu lesen. Laut Definition ist dies wie in dem angehängten Bild. Danach wird der Index festgelegt. data[index] liest also die einzelnen Höhenwerte aus die zwischen 0 und 255 liegen können. Ein Problem mit dem Array/Größe oder ähnliches kann ich mir sehr gut vorstellen. Habe auch schon jemanden gefunden der ein sehr ähnliches Problem hatte: https://answers.unity.com/questions/1236961/border-around-procedural-height-map.html Leider verwendet er kein Terrain usw. und somit ist die Lösung augenscheinlich eine andere. lg
  9. Problem mit Heightmap / Terrain

    Hab jetzt mal die Heightmap exportiert aus Unity.... keine Ahnung ob das aussagekräftigt ist. Hier sieht man den Fehler auch.
  10. Problem mit Heightmap / Terrain

    Die Antwort muss ich erstmal sacken lassen ^^ ... und mehrmals lesen um sie ordentlich zu verstehen. Was ich sagen kann: alles wird Ingame, also on-the-fly erzeugt und verarbeitet. Ein manuelles exportieren und Rahmen hinzufügen scheidet daher aus. Danke dir vorerstmal für die Mühe!
  11. Problem mit Heightmap / Terrain

    Hallo, ich baue mir ein Terrain mit Heightmal und Texturen per Script zusammen. Alles funktioniert soweit, aber es tritt folgender Bug auf > siehe Bilder. Das gesamte Terrain, SplatPrototype, Texture und Heightmap hole ich mir aus einer Binärdatei die ich byte für byte auslese. Wenn ich die Heightmap flatte - dann sieht alles richtig aus - aber eben ohne Höhen. Somit vermute ich den Bug bei der Erzeugung der Heightmap. Das Terrain ist 512x512, die Heightmap hat eine Resolution von 64 (65). Da der Code lange ist hier die dazugehörigen Ausschnitte: Deklaration: public float[,] heights = new float[64, 64]; Auslesen der Binärdaten und schreiben in das Array: // Heightmap int heightMapStart = 20 + landMapLength * 2; int heightMapLength = int.Parse(data[20 + landMapLength * 2 + 1].ToString("X2") + data[20 + landMapLength * 2].ToString("X2"), System.Globalization.NumberStyles.HexNumber); int index = heightMapStart + 2; for (int x = 0; x < 64; x++) { for (int y = 0; y < 64; y++) { heights[x, y] = data[index]/255f; Debug.Log("Height-Position X:" + x + "/Y:" + y + " - Value:" + data[index]/255f); index++; } } Erzeugen des Terrains mit Texture und Heightmap: //texture on terrain SplatPrototype[] splats = new SplatPrototype[1]; splats[0] = new SplatPrototype(); splats[0].texture = data.landmap; // landmap is a list of compress pixel. it starts left/down and runs line by line to up/right. 512x512px //splats[0].tileSize = new Vector2(terrain.terrainData.size.x - terrain.terrainData.size.x * 8 / 512, terrain.terrainData.size.z - terrain.terrainData.size.z * 8 / 512); splats[0].tileSize = new Vector2(512, 512); terrain.terrainData.splatPrototypes = splats; terrain.terrainData.heightmapResolution = 64; terrain.terrainData.SetHeights(0, 0, data.heights); Irgendwo hab ich einen Fehler und ich finde diesen nicht. Das Array ist von 0-64 auf X und Y korrekt gefüllt. Bitte um Hilfe danke
  12. Zugriff auf Liste in einem anderen Skript

    int objCount = data.trackObjects.Count; for (int i = 0; i < objCount; i++) { Debug.Errorlog(data.trackObjects[i].x); Debug.Errorlog(data.trackObjects[i].y); Debug.Errorlog(data.trackObjects[i].type); Debug.Errorlog(data.trackObjects[i].rotation); } Das war die Lösung
  13. Hallo, hab da ein Problem mit dem Zugriff auf eine Liste in einem anderen Skript. Vielleicht könnt ihr mir helfen. Script1 - for example ill call it "baseData.cs": using UnityEngine; using System.IO; using System.Collections.Generic; public class TrackData { blablabla... file loading and so on.... public List<TrackObject> trackObjects = new List<TrackObject>(); // Track Objects int objStart = index; int objCount = int.Parse(data[index + 1].ToString("X2") + data[index].ToString("X2"), System.Globalization.NumberStyles.HexNumber); index += 2; for (int i = 0; i < objCount; i++) { TrackObject obj = new TrackObject(); obj.type = (TrackObjectsType)data[index]; Debug.LogError(obj.type); index += 2; obj.x = int.Parse(data[index + 1].ToString("X2") + data[index].ToString("X2"), System.Globalization.NumberStyles.HexNumber); Debug.LogError("X:"+obj.x); index += 2; obj.y = int.Parse(data[index + 1].ToString("X2") + data[index].ToString("X2"), System.Globalization.NumberStyles.HexNumber); Debug.LogError("Y:" + obj.y); index += 2; obj.rotation = data[index + 1] * 360f / 244f + data[index] / 244f; Debug.LogError("rot:" + obj.rotation); index += 2; trackObjects.Add(obj); } public struct TrackObject { public TrackObjectsType type; public int x, y; public float rotation; } public enum TrackObjectsType { Start = 0, Wall, Bush, Fence } Script2 - for example i call it "TrackLoading.cs": using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { void Start() { files = System.IO.Directory.GetFiles(Application.streamingAssetsPath, "*.trk"); //files = new string[] { Next(); } public void Next() { if (index >= files.Length) return; TrackData data = new TrackData(files[index]); } } Alles funktioniert tadellos.... Datei laden, auslesen, Liste füllen. Alles da. Ich möchte aber nun in der test.cs auf das Listenobjekte zugreifen und obj.type, obj.x und obj.y auslesen damit ich die entsprechenden Objekte spawnen lassen kann. Ich schaffe es nicht danke mike
  14. Kamera-Movement / Drehung um einen Map

    Habs schon gelöst Einfach 2 Parents darüberlegen und für X und Y die beiden Parents-Positions modifizieren und für Zoom dann die Camera selbst. Funktioniert einwandfrei
  15. Hallo, ich würde gerne diese Art von Kamera-Drehung realisieren (siehe Video). Die Rotation habe ich hinbekommen mit einem GameObject unter welches ich die Kamera gehängt habe. Ich schaffe es aber nicht dass sich die Kamera UM den Mittelpunkt der Map bewegt, ohne dass sich alle anderen Abstände verändern. Hat jemand einen Gedankenansatz? danke
×