C#体素生成奇怪的bug

问题描述 投票:0回答:0

我正在尝试在 C# 中生成体素,但有一个奇怪的错误。
我已经用 C# 生成了其他体素,但从未遇到过这个错误;

长这样:

[图片见reddit上的帖子就可以看到]

我尝试了多种方法,但只有一种方法有效,在每一代之间等待一帧。

加载块数组的代码:

public void Update(float state) {     if (chunkQueue.Any())         chunkService.LoadChunk(chunkQueue.Dequeue());      var cameraPosition = cameraSet.GetEntities()[0].Get<Transform>().Position;     var cameraChunkPosition = new Vector2Int     {         X = (int)Math.Floor(cameraPosition.X / 16),         Y = (int)Math.Floor(cameraPosition.Z / 16)     };      for (int x = 0; x < renderDistance; x++)     {         for (int z = 0; z < renderDistance; z++)         {              var chunkPosition = cameraChunkPosition + new Vector2Int(x - halfRenderDistance, z - halfRenderDistance);              if (existingChunk.Contains(chunkPosition))                 continue;              chunkService.LoadChunk(chunkPosition);             //chunkQueue.Enqueue(chunkPosition);             existingChunk.Add(chunkPosition);         }     } } 

但是如果我取消注释 //chunkQueue.Enqueue(chunkPosition);

并注释 chunkService.LoadChunk(chunkPosition);

正确生成如下:

[图片见reddit上的帖子就可以看到]

为什么会发生这种情况?

我猜是记忆有问题还是什么的。

块生成发生在这个文件中:https://github.com/TheJemy191/FluxEngine/blob/main/MinecraftClone/ChunkService.cs

Github 回购:https://github.com/TheJemy191/FluxEngine

也在这里发布https://www.reddit.com/r/VoxelGameDev/comments/11b5yem/c_voxel_generation_weird_bug/
https://www.reddit.com/r/csharp/comments/11b5zmo/voxel_generation_weird_bug/

c# .net-core procedural-generation voxel
© www.soinside.com 2019 - 2024. All rights reserved.