Search Issue Tracker
Fixed in 2021.3.34f1
Fixed in 2021.3.X, 2022.3.X, 2023.2.X, 2023.2.3f1, 2023.3.X
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 ()
Comments (1)
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
- Texture2D hash changes inside of an AssetBundle when rebuilding a SpriteAtlas bundle with an empty AssetPostprocessor Script enabled
- Aniso Level still applies when Generate MipMap is disabled in Texture Import Settings
- Mipmap Limit Groups long names are not truncated when creating a new Mipmap Limit Group with a long name
- “ArgumentException: Invalid double parameter.” error is thrown when Infinity is typed into the Fixed Timestep field
- GameObject becomes gray when using HDRP and STP together on macOS
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}");
}
```