Search Issue Tracker
Fixed
Fixed in 2021.3.34f1, 2022.3.16f1, 2023.2.3f1, 2023.3.0a13
Votes
2
Found in
2021.3.28f1
2022.3.4f1
2023.1.4f1
2023.2.0a23
Issue ID
UUM-42366
Regression
No
Editor crashes on Camera::GetCameraRect when calling renderingDisplaySize on a nested Canvas GameObject
How to reproduce:
1. Open the “IN-46239_NestedCanvas_repro.zip“ project
2. Open the “SampleScene“
3. Select the “Canvas2“ GameObject
4. Right-click on the Test.cs component and select “Crash Unity“
Expected result: Editor continues to run
Actual result: Editor crashes
Reproducible with: 2021.3.28f1, 2022.3.4f1, 2023.1.4f1, 2023.2.0a23
Reproducible on: Windows 10
First few lines of the Stack Trace:
0x00007ff7253f5bcf (Unity) Camera::GetCameraRect
0x00007ff72607ad19 (Unity) UI::Canvas::GetRenderingDisplaySize
0x00007ff724d79e07 (Unity) Canvas_CUSTOM_get_renderingDisplaySize_Injected
0x000001d47608009c (Mono JIT Code) (wrapper managed-to-native) UnityEngine.Canvas:get_renderingDisplaySize_Injected (UnityEngine.Canvas,UnityEngine.Vector2&)
0x000001d47605fe63 (Mono JIT Code) UnityEngine.Canvas:get_renderingDisplaySize ()
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
- Search field in UI Builder's Library has no character limit
- Changing the value in UI Builder by dragging increases it by a few thousand points when reaching the borders of the screen
- ARM64 architecture DLL incorrectly copied instead of x64 when building for Windows x64
- Crash on TypeTreeIterator::GetNode when opening a specific folder
- Crash on WriteSerializedAssetsV2 when (re)entering the Play Mode in a specific project when IEnumerator Start() is used
JohannesDemlInnoGames
Jul 20, 2023 05:28
You can reproduce the issue by creating a new canvas and trying to access the render size right away:
```
public static void GetCanvasDisplaySizeCrash()
{
GameObject gameObject = new GameObject("TestCanvas");
var canvas = gameObject.AddComponent<Canvas>();
var renderingDisplaySize = canvas.renderingDisplaySize;
Debug.Log($"x: {renderingDisplaySize.x}, y: {renderingDisplaySize.y}");
}
```