public ChunkData AddData(ChunkData chunk, T data) { if (chunk.useLength == chunk.dataLength) { // 拡張 // 新しいチャンクを割り当て int len = chunk.dataLength; len += Mathf.Min(len, 4096); var newChunk = AddChunk(len); // 現在のデータをコピーする nativeArray.CopyBlock(chunk.startIndex, newChunk.startIndex, chunk.dataLength); newChunk.useLength = chunk.useLength; // 現在のチャンクを破棄する RemoveChunk(chunk); chunk = newChunk; } nativeArray[chunk.startIndex + chunk.useLength] = data; chunk.useLength++; return(chunk); }