Jump to content
Unity Insider Forum

Unity Editor klick ändert Ingame-View????


Elharter

Recommended Posts

Nice!

Dann kannst du jetzt schauen, ob du einfach die Tessellationsdistanz hochstellst. Tessellation gibt's ja nicht ohne Grund, ist quasi LOD für das große Objekt, das ein Terrain nun mal ist. Aber gerade bei Top-Down kann man da eigentlich gut drauf verzichten. Eine Alternative wäre also vermutlich, dass du das Terrain durch ein oder mehrere Meshes ersetzt. Bei mehreren Meshes kann Unity automatisch mit Frustum Culling die Teile ausblenden, die nicht im Bild sind. Es gibt auch einige Tools für's Konvertieren von Terrain nach Mesh. Vielleicht kannst du dir da einen Workflow erstellen, mit dem du den Terrain Editor weiter benutzen kannst. Oder du benutzt ProBuilder für dein Terrain :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 5.12.2020 um 07:46 schrieb Sascha:

Das Mesh stopfst du in einen MeshFilter und fertig!

So, wie du die anderen Objekte in deiner Szene auch hast: MeshFilter und MeshRenderer. Vermutlich bietet sich ein Prefab an, um die Einstellungen im MeshRenderer parat zu haben.

Dann machst du

GetComponent<MeshFilter>().mesh = myMesh;

und schon hast du ein selbstgemachtes 3D-Modell in deiner Szene.

vor 7 Stunden schrieb Elharter:

Zumal die vorhandenen Terrainmeshes sich ja auf die Heightmap beziehen!?

Eine Heightmap ist auch nur eine Menge an floats, die jeweils einen Höhenwert pro Position auf dem Boden darstellen. Wenn du dir eine Plane baust, dann kannst du für jeden Punkt einfach die Höhe übernehmen.

var mesh = new Mesh();

var vertices = new Vector3[heightmap.width * heightmap.height];
var index = 0;

for (var y = 0; y < heightmap.height; y++)
{
  for (var x = 0; x < heightmap.width; x++)
  {
    var height = heightmap[x, y]; // <- Je nach dem, wie deine Heightmap aussieht. Wenn Textur, sowas wie GetPixel
      
    vertices[index] = new Vector3(x, height, y);
    
    index++;
  }
}

mesh.vertices = vertices;

// mesh.normals und son kram...

GetComponent<MeshFilter>().mesh = mesh;

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...