Search Issue Tracker
Fixed in 2021.2.X
Votes
0
Found in
Issue ID
1319358
Regression
No
NativeArray<T>.ReadOnly does not implement IEnumerable<T>
NativeArray<T> implements IEnumerable<T> allowing to use C# "foreach" syntax to iterate over it. However its read-only view (returned by calling .AsReadOnly()) does not, leading to an inconvenient inconsistency of the API.
This is especially problematic in some scenarios with DOTS.
In the attached project - and in particular in the attached screenshot -, there is a DOTS-based draft of a NBody physics system. The Job System prevents concurrent write access to the "velocityEntityChunks" array - at least in development mode - by raising an exception if I try to manipulate it directly. It forces me to call its readonly view by calling .AsReadOnly() before doing anything. For example it prevents line 39 to work via a runtime error.
My first reflex as a C# developer was to assume I could write the same "foreach" loop on the readonly view (as in line 43). However it does not compile because the type NativeArray<T>.Readonly returned by "AsReadOnly()" does not implement IEnumerable<T>. This forces me to rewrite the loop as in lines 47-50.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Crash on GfxDeviceClient::AllocateBufferInternal when entering Play mode using Graphics.RenderPrimitives and Graphics.DrawProcedural in the scene
- Import TextMesh Pro window opens when the Text Mesh Pro Essentials and Examples are already imported when creating a new TextMesh Pro GameObject in the Hierarchy with TextMesh Pro settings reset
- Video is not rendered when the VideoPlayer GameObject is disabled and re-enabled after playback starts while using Material Override render mode
- Missing documentation page - "Sorry...that page seems to be missing" is shown on the browser when clicking the help icon on a Color Preset Library Scriptable Object
- Selection outline is not shown when selecting a high intensity HDR Swatch preset in Color Picker
Resolution Note (fix version 2021.2):
Fixed in 2021.2.0a11