test mesh

This commit is contained in:
jze9
2026-04-17 02:14:56 +05:00
parent 087db550f1
commit 64293937a7
50 changed files with 2570 additions and 963 deletions

View File

@@ -16,6 +16,10 @@ public class WorldManager : MonoBehaviour
[Tooltip("Можно оставить пустым — создаётся из кода")]
public GameObject chunkPrefab;
[Header("Chunk Layer")]
[Tooltip("Слой для всех чанков — должен совпадать с blockLayer в BlockPlacer")]
public LayerMask chunkLayer;
// chunkPos (в чанковых координатах) → Chunk
private readonly Dictionary<Vector3Int, Chunk> _chunks = new();
@@ -97,8 +101,11 @@ public class WorldManager : MonoBehaviour
go.transform.position = ChunkData.ChunkToWorld(chunkPos);
if (chunkLayer.value != 0)
go.layer = Mathf.RoundToInt(Mathf.Log(chunkLayer.value, 2));
var chunk = go.GetComponent<Chunk>() ?? go.AddComponent<Chunk>();
chunk.Initialise(data, registry.ChunkMaterial);
chunk.Initialise(data, registry.ChunkMaterial, buildMesh: false);
_chunks[chunkPos] = chunk;
return chunk;
@@ -129,6 +136,16 @@ public class WorldManager : MonoBehaviour
chunk.RebuildMesh();
}
/// <summary>
/// Перестраивает меши всех чанков.
/// Вызывать после того как все чанки созданы — исправляет граничные грани.
/// </summary>
public void RebuildAllChunks()
{
foreach (var chunk in _chunks.Values)
chunk.RebuildMesh();
}
/// <summary>Перевод мировой позиции игрока → мировые координаты блока.</summary>
public static Vector3Int WorldToBlock(Vector3 worldPosition)
{