"HashMap is Full" при использовании TryAdd в Unity Job System
Я ещё не особо разбираюсь в Job System, но после того как я наконец-то смог использовать HashMap внутри самого job я столкнулся с ошибкой
InvalidOperationException: HashMap is full

На Unity форумах я не нашёл ничего что могло бы мне помочь.
Ошибка вызывается в этой строке:
writePipeByPosition.TryAdd(position, tempPipe);
Эта строка мне нужна для того что бы перезаписывать/изменять данные "трубы" (pipe). Я не знаю насколько точно я дал понять мою проблему, но заранее спасибо, всё что нужно уточняйте.
Вот так выглядит сам IJobParallelFor (убрал всё лишнее):
private struct MovingJob : IJobParallelFor {
[ReadOnly] public NativeArray<Resource> resourcesArray;
public NativeArray<Matrix4x4> matricesArray;
public NativeHashMap<Vector3Int, Pipe>.ReadOnly readPipeByPosition;
public NativeParallelHashMap<Vector3Int, Pipe>.ParallelWriter writePipeByPosition;
public void Execute(int index) {
Matrix4x4 matrix = matricesArray[index];
Vector3Int position = Vector3Int.FloorToInt(new(matrix.m03, matrix.m13, matrix.m23));
if (readPipeByPosition.TryGetValue(position, out Pipe tempPipe)) {
writePipeByPosition.TryAdd(position, tempPipe);
}
}
}
Вот как выглядит вызов данной структуры (также убрал всё лишнее):
private void Update() {
if (resourceList.Count > 0) {
int count = resourceList.Count;
NativeArray<Matrix4x4> matricesArray = new(matricesList.ToArray(), Allocator.TempJob);
NativeHashMap<Vector3Int, Pipe> nativeReadHashMap = new(pipeManager.pipeComponentByPosition.Count, Allocator.TempJob);
NativeParallelHashMap<Vector3Int, Pipe> nativeWriteHashMap = new(pipeManager.pipeComponentByPosition.Count, Allocator.TempJob);
foreach (var kvp in pipeManager.pipeComponentByPosition) {
nativeReadHashMap.TryAdd(kvp.Key, kvp.Value);
}
var movingJob = new MovingJob {
matricesArray = matricesArray,
readPipeByPosition = nativeReadHashMap.AsReadOnly(),
writePipeByPosition = nativeWriteHashMap.AsParallelWriter()
};
JobHandle movingJobHandle = movingJob.Schedule(count, 32);
movingJobHandle.Complete();
matricesArray.Dispose();
nativeReadHashMap.Dispose();
nativeWriteHashMap.Dispose();
}
}